सुविधा के लिए, इष्टतम विधि jmtd और फहीम के उत्तरों का एक संयोजन है ।
ssh-agentअकेले उपयोग करने का मतलब है कि ssh-agentआपके द्वारा खोले जाने वाले हर नए टर्मिनल के लिए एक नया उदाहरण बनाया जाना चाहिए। keychainजब आरंभीकृत निजी कुंजी (ओं) के लिए पासफ़्रेज़ के लिए पूछेगा और इसे संग्रहीत करेगा। इस तरह आपकी निजी कुंजी पासवर्ड से सुरक्षित है लेकिन आपको बार-बार अपना पासवर्ड दर्ज नहीं करना पड़ेगा।
आर्क विकि से कीचेन आरंभ की सिफारिश की /etc/profile.d/तरह के रूप में या अपने खोल प्रोफ़ाइल, .bash_profileया .bashrc। इसका एक नुकसान यह है कि जैसे ही आप एक टर्मिनल खोलते हैं, यह आपके किचेन को ठीक कर देता है।
एक अधिक लचीला दृष्टिकोण keychainएक विशिष्ट tmuxसत्र के साथ संयोजन करना है । तो, इसमें .bash_profile:
tsess=$(tmux ls 2>&1)
if [[ "${tsess%%:*}" = "secured" ]] &&
[[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
# start keychain
/usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
. $HOME/.keychain/$HOSTNAME-sh
fi
... और फिर यह tmuxआवश्यक सत्र शुरू करने का एक मामला है जब और जब आवश्यक हो (एक कीबाइंड से लॉन्च किया जाता है):
#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"
if [[ -z "$SSH_AUTH_SOCK" ]]; then
eval `ssh-agent`
trap "kill $SSH_AGENT_PID" 0
fi
if [[ -z "$PID" ]]; then
urxvtc -title "SSH" -e sh -c "${new}"
else
urxvtc -title "SSH" -e sh -c "${old}"
fi
ssh-add
जब आप उस विशिष्ट tmuxसत्र को शुरू करते हैं, तो आपके किचेन को केवल एक बार इनिशियलाइज़ किया जाएगा । जब तक वह सत्र जारी रहेगा, आप उन sshकुंजियों तक पहुँचने और अपने दूरस्थ रिपॉजिटरी पर धकेलने में सक्षम होंगे ।
evalआप केवल टाइप कर सकते हैंssh-agent?