मैं मुख्य रूप से एक मैक पर काम करता हूं और 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 के वातावरण में इसे रखा , तो सब कुछ ठीक है। मेरा सवाल यह है कि मुझे सेटेनव कमांड को आखिर क्यों चलाना है?
अपडेट २
अधिक जानकारी:
जब मैं किसी मौजूदा सत्र $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
?