5
再アタッチするときにtmuxでenv変数を再設定する必要があるのはなぜですか?
私は主にMacで作業し、Linuxマシンにssh / tmuxを接続して作業をしています。Linuxマシンでssh-agentを実行しています。私が持っています set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY" 私の.tmux.conf。それでも、このセッションに再接続するたびに、実行する必要があります tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK 新しいtmuxウィンドウを$SSH_AUTH_SOCK正しく設定するため。これをする必要はありません。何か案は? 更新 私はこれをうまく説明していないと思います。リモートマシンでシェルを開くためのシェル関数を次に示します。 sshh () { tmux -u neww -n ${host} "ssh -Xt ${host} $*" } tmuxのは、このsshのコマンドを実行すると、$SSH_AUTH_SOCKされないことがあっても、設定された私のローカル環境で設定してください。setenv上記のコマンドを使用してtmuxの環境にこれを配置すると、すべてが正常に機能します。私の質問は、なぜsetenvコマンドを実行する必要があるのですか? 更新2 詳しくは: 既存のセッションにアタッチする$SSH_AUTH_SOCKと、tmux環境(またはグローバル環境)で設定されません。 % tmux showenv | grep -i auth_sock -SSH_AUTH_SOCK 手動で設定すると、動作します: % tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK …