सुविधा के लिए, इष्टतम विधि 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
?