Saya terutama bekerja pada mac dan ssh / tmux melampirkan ke mesin Linux untuk melakukan pekerjaan saya. Saya memiliki ssh-agent yang berjalan di mesin Linux. saya sudah
set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"
di saya .tmux.conf. Namun, setiap kali saya melampirkan kembali sesi ini, saya harus berlari
tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
agar windows tmux baru telah $SSH_AUTH_SOCKdiatur dengan benar. Saya lebih suka tidak harus melakukan ini. Ada ide?
Memperbarui
Saya pikir saya tidak menjelaskan ini dengan baik. Inilah fungsi shell saya untuk membuka shell pada mesin jarak jauh:
sshh () {
tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Ketika tmux menjalankan perintah ssh ini, $SSH_AUTH_SOCKadalah tidak diatur, meskipun itu adalah diatur dalam lingkungan lokal saya. Jika saya meletakkan ini di lingkungan tmux dengan setenvperintah di atas, semuanya berfungsi dengan baik. Pertanyaan saya adalah, mengapa saya harus menjalankan perintah setenv sama sekali?
Perbarui 2
Informasi lebih lanjut:
Ketika saya lampirkan ke sesi yang ada, $SSH_AUTH_SOCKtidak diatur di lingkungan tmux (atau lingkungan global).
% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Jika saya mengaturnya secara manual, semuanya berfungsi:
% tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Jika saya melepaskan dan melampirkan $SSH_AUTH_SOCKkembali , kembali ke tidak diatur.
env?