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.
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
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
Ajouter ce qui suit à ~/.ssh/config
Host one-of-my-servers.com
ForwardAgent yes
Si vous ajoutez la clé ssh puis quittez le terminal, vous devrez la rajouter à la prochaine ouverture du terminal.