私は主に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
デタッチして再アタッチすると、$SSH_AUTH_SOCK
設定されていない状態に戻ります。
env
か?