web-dev-qa-db-fra.com

SSH Agent Forwarding ne fonctionne pas

J'ai de la difficulté à configurer Capistrano 3.1 pour déployer une application hébergée sur Github.

Je suis la documentation Capistrano et j'ai réussi la première étape (clés SSH de poste de travail aux serveurs) et la seconde (de nos serveurs à l'hôte du référentiel). Il est possible d'exécuter ssh -A [email protected] 'git ls-remote [email protected]:my_user/my_repo.git' avec succès:

18f38afz261df35d462f7f4e2ca847d22f148a06    HEAD
18f38afz261df35d462f7f4e2ca847d22f148a06    refs/heads/master

cependant, ssh [email protected] 'git ls-remote [email protected]:my_user/my_repo.git' échoue:

Permission denied (publickey).

Capistrano docs suggère

Si vous obtenez l'erreur "La vérification de la clé de l'hôte a échoué". connectez-vous à votre serveur et exécutez en tant qu'utilisateur déployé la commande ssh [email protected] pour ajouter github.com à la liste des hôtes connus.

SO, j'ai essayé donc mais je reçois

ssh [email protected]
Warning: Permanently added the RSA Host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).

Et, fondamentalement, je ne parviens pas à accéder avec succès au dépôt Github. 

La documentation SSH indique:

-A      Enables forwarding of the authentication agent connection.  This
         can also be specified on a per-Host basis in a configuration
         file.

Comment puis-je spécifier sur une base par hôte dans un fichier de configuration?

Ma machine locale exécute Mac OSX Mavericks . Le VPS exécute Ubuntu 12.04

Merci.

26
Sig

Avez-vous votre clé ssh ajoutée à la liste des identités d'agent?

Vous pouvez vérifier avec ssh-add -L, vous devriez voir la clé que vous utilisez pour vous connecter à github:

$ ssh-add -L
ssh-rsa AAAAB3N.....0VmSiRvTzBrbU0ww== /Users/youruser/.ssh/id_rsa

Si vous ne voyez pas la clé ssh que vous utilisez pour github ou un message comme 

L'agent n'a aucune identité.

Ensuite, vous devriez ajouter votre clé avec:

ssh-add ~/.ssh/id_rsa

(remplacez par le chemin de la clé que vous utilisez pour github)

Voir le ssh-add doc pour plus d'informations

68
vdaubry

Ajoutez les lignes suivantes au fichier .ssh/config sur votre ordinateur local

  Host Server_Address
     ForwardAgent yes

Vérifiez votre clé locale si elle est répertoriée dans la liste ssh-add ou non avec 

ssh-add -L

Si non, ajoutez la clé à l'agent SSH

ssh-add -K

Se connecter au serveur distant

ssh -v username@Server_Address

Vérifiez que le transfert de l'agent SSH est activé en exécutant la commande suivante. Il devrait lister un fichier de socket

echo "$SSH_AUTH_SOCK"

Lancer le test de connexion avec GitHub

ssh -T [email protected]

Exécuter le test à distance de ls sur le référentiel git ciblé

git ls-remote --heads [email protected]:account/repo.git

Enfin, déconnectez-vous et lancez le suivi de votre ordinateur local

cap production git:check
21
Tahsin Turkoz

Ajouter ce qui suit à ~/.ssh/config

Host one-of-my-servers.com
    ForwardAgent yes
6
Brad Pitcher

Si vous ajoutez la clé ssh puis quittez le terminal, vous devrez la rajouter à la prochaine ouverture du terminal. 

0
Roger Iyengar