Pour plus de commodité, la méthode optimale est une combinaison des réponses de jmtd et de Faheem .
Utiliser ssh-agent
seul signifie qu'une nouvelle instance de ssh-agent
doit être créée pour chaque nouveau terminal que vous ouvrez. keychain
une fois initialisé, il demandera le mot de passe composé pour la ou les clés privées et le stockera. De cette façon, votre clé privée est protégée par un mot de passe, mais vous n’aurez pas à entrer votre mot de passe encore et encore.
Le wiki Arche recommande de l' initialisation porte - clés /etc/profile.d/
ou votre profil de shell, comme .bash_profile
ou .bashrc
. Cela a pour inconvénient d’initialiser votre trousseau dès que vous ouvrez un terminal.
Une approche plus flexible consiste à combiner keychain
avec une tmux
session spécifique . Donc, dans .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
... et il ne vous reste plus qu'à démarrer la tmux
session sécurisée au fur et à mesure des besoins (lancée à partir d'un raccourci clavier):
#!/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
Désormais, votre trousseau ne sera initialisé qu'une fois lorsque vous démarrez cette tmux
session spécifique . Tant que cette session persiste, vous pourrez accéder à ces ssh
clés et accéder à vos référentiels distants.
eval
pourriez-vous simplement taperssh-agent
?