リモートSSHシェルにtmuxをネストしないでください。

リモートSSHシェルにtmuxをネストしないでください。

.zshrctmuxまだ実行されていない限り、ログイン時に自動的に起動するように接続するすべてのホストに自分のユーザーアカウントを設定しました。

if [ -z "$TMUX" ]; then tmux attach -d || tmux new fi

ローカルホストのtmuxセッションからリモートホストのマイアカウントにssh(またはmosh)するまでは正常に動作しました。マクロがローカルホストからリモートホストに渡されないため、$TMUXtmuxはリモートホストで開始され、2つのネストされたtmuxセッションがあります。

自動起動動作を維持しながらこれを防ぐ方法はありますか?理想的には、リモートシェルが接続しているホストのtmuxセッションで開始されたことを知っていて、2番目のtmuxインスタンスを起動しないことを願っています。

$TERMリモートシェルを確認しましたが、xterm-256colorローカルコンピュータのtmuxセッションで実行されているかどうかにかかわらず、常にこれを行います。

ベストアンサー1

@mark-plotnickのコメントのおかげで、私に合った解決策があるようです。

リモートホストで/etc/ssh/sshd_configに追加します。

AcceptEnv TMUX

localhost から ~/.ssh/config に追加します。

Host * SendEnv TMUX

env変数の値は$TMUXリモートホストに送信され、tmux値がnullでない場合は開始されなくなりました。

サーバー側の変更は気にしませんが、すべてのクライアントを編集する必要はないため、~/.ssh/config他の提案も受け入れることができます。

おすすめ記事