Genelde mac ve ssh / tmux üzerinde çalışıyorum ve işimi yapmak için Linux makinesine ekliyorum. Linux makinesinde çalışan ssh-agent'ım var. Sahibim
set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"
benim içinde .tmux.conf
. Yine de, ne zaman bu oturuma yeniden bağlansam, koşmam gerekiyor
tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Yeni tmux pencerelerin $SSH_AUTH_SOCK
doğru ayarlanması için. Bunu yapmak zorunda kalmamayı tercih ederim. Herhangi bir fikir?
Güncelleme
Sanırım bunu iyi açıklamıyorum. İşte uzaktaki bir makinede bir kabuk açmak için benim kabuk işlevi:
sshh () {
tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Tmux bu ssh komutu çalıştırıldığında, $SSH_AUTH_SOCK
bir değil o halde set edilir benim yerel ortamda ayarlayın. Bunu setenv
yukarıdaki komutla tmux’un ortamına koyarsam her şey yolunda gider . Sorum şu, setenv komutunu neden çalıştırmam gerekiyor?
Güncelleme 2
Daha fazla bilgi:
Mevcut bir oturuma eklediğimde $SSH_AUTH_SOCK
, tmux ortamında (veya global ortamda) ayarlanmadı.
% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Manuel olarak ayarlarsam, işler işe yarar:
% tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Çıkarır ve yeniden takarsam, $SSH_AUTH_SOCK
kurulmamışa geri döner.
env
nedir?