104 votes

comment éviter de se voir demander "Enter passphrase for key " lorsque je fais une opération ssh sur un hôte distant ?

Je me connecte par ssh à un hôte distant (linux, fedora) et je veux y effectuer des opérations par ssh (git avec bitbucket). Il y a ssh-agent qui tourne sur cette machine,

$ ps -e|grep sh-agent
 2203 ?        00:00:00 ssh-agent

mais quand je veux git, il me demande de saisir la phrase de passe

$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa': 

Note : si j'opère localement sur cette machine, il ne me demandera pas d'entrer la phrase de passe.

2voto

uvsmtid Points 123

Vous obtiendrez toujours une demande de mot de passe pour décrypter la clé privée, même si elle est chargée dans la base de données de l'UE. ssh-agent jusqu'à ce que la clé publique SSH correspondante soit ajoutée à la clé publique distante. ~/.ssh/authorized_keys .

A reproduire :

# We are about to ssh to localhost, therefore, unauthorized everyone.
$ rm ~/.ssh/authorized_keys

$ eval $(ssh-agent)
# Agent pid 9290

$ ssh-add
# Enter passphrase for /home/uvsmtid/.ssh/id_rsa: 
# Identity added: /home/uvsmtid/.ssh/id_rsa (/home/uvsmtid/.ssh/id_rsa)

$ ssh localhost
# Enter passphrase for key '/home/uvsmtid/.ssh/id_rsa':
# uvsmtid@localhost's password:
  # NOTE: See password prompt for private key
  #       (and only then prompt for remote login).
  #       Why? Isn't the private key is already loaded by `ssh-add`?

$ ssh-copy-id localhost
$ ssh localhost
  # NOTE: No password for private key anymore.
  #       The key is served by `ssh-agent`.

Assez déroutant. Le mot de passe de connexion SSH à distance serait suffisant dans ce cas.

Je peux supposer que cela empêche d'ajouter votre clé publique (qui est associée à une clé privée cryptée) sans connaître le mot de passe de cryptage de la clé privée correspondante. De toute façon, il s'agit d'une procédure de connexion unique par télécommande.

2voto

ow3n Points 216

Sur Mac, ajoutez UseKeyChain à ~/.ssh/config

nano ~/.ssh/config

et ajoutez ce qui suit

Host *
    UseKeychain yes

1voto

Sword I Points 111

Les étapes suivantes fonctionnent pour moi sur mac.

$ ssh-keygen -p
# Start the SSH key creation process
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [One more time for luck]
> Your identification has been saved with the new passphrase.

Le lien détaillé est ici

1voto

Freigus Points 1

Pour n'exécuter qu'un seul ssh-agent par session, ajoutez ceci à votre fichier RC (par ex. ~/.bashrc ) :

if [ -S ~/.ssh/socket ]; then
    eval $(ssh-agent)
    ln -sf "$SSH_AUTH_SOCK" ~/.ssh/socket
fi
export SSH_AUTH_SOCK=~/.ssh/socket

Pour qu'une phrase de passe ne soit demandée qu'une seule fois lorsque SSH essaie d'utiliser une clé pour la première fois, ajoutez ceci au début de votre fichier ~/.ssh/config :

AddKeysToAgent yes

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