1 votes

Utiliser ssh-add automatiquement

Sur Ubuntu, chaque fois que je me connecte en SSH à une machine, je reçois une invite pour déverrouiller ma clé privée et jusqu'à ce que je quitte ma session OS, je peux me connecter en SSH à autant de machines que je veux en utilisant l'authentification par clé et sans avoir à entrer quoi que ce soit. Sur Debian, je vais recevoir une invite pour un mot de passe à chaque fois que je fais quelque chose. Si je lance "ssh-add", alors je n'aurai plus à entrer de phrase secrète tant que j'utilise cette même fenêtre de terminal. Si j'ouvre un nouveau terminal, je devrai exécuter à nouveau ssh-add. Est-ce que quelqu'un a des astuces pour que Debian 7.1 copie la fonctionnalité offerte par Ubuntu ici ?

2voto

Le secret est qu'il y a un ssh-agent qui s'exécute en arrière-plan et qu'Ubuntu enregistre les paramètres pour ce processus quelque part. Ainsi, pour que les choses se passent comme ça, vous devez a) démarrer ssh-agent en arrière-plan et b) enregistrer l'ID de ce processus quelque part afin de pouvoir ensuite sourcer la valeur de l'ID pour tous les shells ultérieurs.

Lorsque ssh-agent est lancé, il affichera son ID et d'autres informations que vous voudrez sourcer ultérieurement lors du lancement de nouveaux shells. Quelque chose comme ce qui suit dans votre ~/.bashrc pourrait fonctionner :

setf="$HOME/.ssh_agent_settings"          # nom du fichier pour stocker l'ID, etc.
[ -r $setf ] && . $setf > /dev/null 2>1   # sourcer l'ID, etc. si le fichier existe
kill -0 $SSH_AGENT_PID > /dev/null 2>&1   # kill -0 échouera si le processus n'existe pas
[ "$?" -eq 0 ] && exit                    # kill renvoie 0 en cas de succès
ssh-agent > $setf                         # le processus n'existe pas, donc nous en créons un
. $setf > /dev/null 2>&1                  # sourcer l'ID du processus fraîchement créé

Cela lancera ssh-agent lors de l'initialisation du shell, au cas où il ne serait pas déjà en cours d'exécution, ou simplement sourcer l'ID du ssh-agent et les variables AUTH_SOCK depuis ~/.ssh_agent_settings.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X