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_SOCK
diatur 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_SOCK
adalah tidak diatur, meskipun itu adalah diatur dalam lingkungan lokal saya. Jika saya meletakkan ini di lingkungan tmux dengan setenv
perintah 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_SOCK
tidak 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_SOCK
kembali , kembali ke tidak diatur.
env
?