J'ai lu et suivi de la documentation en ligne sur la manière de configurer un ssh-agent de sorte que je n'ai pas besoin de saisir un mot de passe chaque fois que je ssh une machine distante.
Cependant, avec l’aide de ssh-agent , j’ai toujours besoin de faire ssh-add
chaque fois que je redémarre le shell. Le ssh-add
me demande ensuite de saisir la phrase secrète pour déverrouiller la clé privée.
Enter passphrase for key '/home/xx/.ssh/id_rsa':
Au lieu de taper mon mot de passe pour la machine distante, on me demande de taper le mot de passe pour la clé privée. C'est comme sortir d'un purgatoire et me retrouver dans un enfer après. On dirait que l'id_rsa n'est ajouté que temporairement à ssh-agent dans une session, car à chaque fois que je me connecte et que je tape ssh-add -l
. Je reçois:
The agent has no identities.
Puis-je demander comment stocker de manière permanente la clé (id_rsa) dans ssh-agent? Merci
EDIT: c’est ce que j’ai fait avec ssh-agent
. J'ai ajouté le bloc suivant à ~/.bash_profile
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
J'ai installé le trousseau.
Sudo apt-get install keychain
Si vous utilisez bash, vous devez ajouter quelques commandes à votre fichier .bash_profile. Si vous n'avez pas de fichier .bash_profile, créez-en une dans votre dossier personnel. Ajoutez ces lignes:
### START-Keychain ###
# Let re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###
Je me connecterai au début d'une journée de travail. Lorsque j'ouvre un terminal, on me demandera une fois ma phrase secrète. Pour tous les autres nouveaux terminaux et connexions, on ne me demandera plus ma phrase secrète.
Ce que vous recherchez est moins sécurisé, mais vous pouvez le faire en utilisant l’authentification par clé publique sans avoir besoin de ssh-agent. Une option plus sécurisée consiste à utiliser l'authentification par clé publique avec une phrase secrète tout en désactivant l'authentification par mot de passe sur le serveur ssh, mais ce n'est pas ce que vous avez demandé. Voir le lien au bas de cette réponse pour des instructions si vous décidez de le faire à la place.
Pour utiliser ssh sans demander de phrase secrète, vous devez générer votre paire de clés tout en laissant le champ vide.
Pour vérifier si vous avez déjà généré une paire de clés, recherchez les fichiers id_rsa et id_rsa.pub dans votre répertoire ~/.ssh. S'ils sont déjà présents, vous pouvez les supprimer ou les déplacer pour créer une nouvelle paire de clés.
Notez que si vous les supprimez, vous perdrez l'accès à tous les serveurs ssh que vous utilisez, puis d'anciennes clés d'authentification si l'authentification par mot de passe est désactivée sur le serveur.
Pour créer une nouvelle paire de clés, exécutez la commande suivante:
ssh-keygen -t rsa
Acceptez l'emplacement par défaut pour les clés et laissez la phrase secrète vide.
Pour donner votre clé publique au serveur ssh auquel vous voulez vous connecter, utilisez la commande suivante:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost
Une fois ces étapes terminées, vous pourrez vous connecter au serveur distant sans mot de passe de l'ordinateur que vous utilisez.
Référence: http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/
Il y a quelque temps, j'ai soudainement commencé à me demander une phrase secrète pour déverrouiller ma clé ssh lorsque je faisais git Push
. Il s'est avéré que pour arrêter de demander une phrase secrète, il suffisait d'ajouter l'agent de clé SSH (GNOME Keyring: Agent SSH) aux applications de démarrage (dans mon cas, il suffit de cocher la case à cocher):