Est-il possible de spécifier des clés transférées à l'aide de la directive IdentityFile dans .ssh / config?
J'ai rencontré cette bizarrerie en essayant de déployer du code via Capistrano / GIT sur notre serveur de production. Mes clés GIT personnelles et professionnelles sont toujours chargées dans mon agent SSH et il se trouve que ma clé personnelle a été ajoutée en premier à l'agent. J'utilise le transfert d'agent lors du déploiement avec Capistrano, donc lorsque l'hôte a tenté d'authentifier l'opération `git pull`, il a échoué avec l'erreur suivante:
ERREUR: Autorisation de `certains repo` refusée à` votre utilisateur`.
car il a tenté de s'authentifier à l'aide de ma clé git personnelle avant d'essayer la clé appropriée (qui est venue plus tard dans l'agent ssh) et a supposé que j'accédais à un référentiel étranger auquel je n'ai pas l'autorisation d'accéder. Je peux potentiellement donner à mon utilisateur personnel un accès à chaque dépôt de travail, mais sur ma machine locale, je peux contourner ce problème en définissant des domaines personnalisés dans .ssh / config comme suit:
Hôte personal.github.com
Nom d'hôte github.com
Utilisateur git
IdentityFile ~ / .ssh / some_key
Hôte work.github.com
Nom d'hôte github.com
User git
IdentityFile ~ / .ssh / some_other_key
et de cette façon, git ne se confond jamais. Est-il possible de créer des règles .ssh / config pour les clés transférées sur mes boîtes de production afin qu'elles sachent toujours quelle clé utiliser lors de l'extraction de nouveau code? Fondamentalement, je veux pouvoir faire:
Hôte work.github.com
Hostname github.com
User git
IdentityFile some_forwarded_key
Merci!
la source
ssh -v -T ...
le serveur accepte la clé publique, mais ssh ditNo such identity: /home/name/.ssh/id_rsa: No such file or directory
et par la suite l'authentification échoue. J'ai ForwardAgent activé dans toutes mes configurations. Quel pourrait être le problème?