Question Impossible d'ouvrir une connexion à votre agent d'authentification


Je cours dans cette erreur de:

$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
!  Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.

J'ai essayé d'ajouter les clés et j'ai cette erreur ci-dessous:

$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.

1183
2017-07-24 23:26


origine


Réponses:


As-tu commencé ssh-agent?

Vous pourriez avoir besoin de commencer ssh-agent avant de lancer le ssh-add commander:

eval `ssh-agent -s`
ssh-add

Notez que cela lancera l'agent pour msysgit Bash sur Windows. Si vous utilisez un shell ou un système d'exploitation différent, vous devrez peut-être utiliser une variante de la commande, telle que celles répertoriées dans le d'autres réponses.

Voir les réponses suivantes:

  1. ssh-add se plaint: Impossible d'ouvrir une connexion à votre agent d'authentification
  2. Git push nécessite un nom d'utilisateur et un mot de passe (contient des instructions détaillées sur l'utilisation de ssh-agent)
  3. Comment exécuter l'agent d'authentification (git / ssh)?.
  4. Impossible d'ouvrir une connexion à votre agent d'authentification

Pour démarrer automatiquement ssh-agent et permettre à une seule instance de fonctionner dans plusieurs fenêtres de console, voir Démarrer ssh-agent lors de la connexion.

Pourquoi avons-nous besoin d'utiliser eval au lieu de juste ssh-agent?

Pour découvrir pourquoi, voir La réponse de Robin Green.

Clés publiques et privées

Aussi, chaque fois que j'utilise ssh-add, J'ajoute toujours des clés privées. Le fichier ~/.ssh/id_rsa.pub ressemble à une clé publique, je ne suis pas sûr que cela fonctionne. As tu un ~/.ssh/id_rsa fichier? Si vous l'ouvrez dans un éditeur de texte, est-ce que c'est une clé privée?


1827
2017-07-25 03:37



J'ai essayé les autres solutions en vain. J'ai fait plus de recherches et j'ai trouvé que la commande suivante fonctionnait. J'utilise Windows 7 et Git Bash.

eval $(ssh-agent)

Plus d'informations dans: https://coderwall.com/p/rdi_wq


441
2018-02-20 13:34



La commande suivante a fonctionné pour moi. J'utilise CentOS.

exec ssh-agent bash

220
2017-12-05 15:10



MsysGit ou Cygwin

Si vous utilisez Msysgit ou Cygwin, vous pouvez trouver un bon tutoriel sur SSH-Agent dans msysgit et cygwin et bash:

  1. Ajouter un fichier appelé .bashrc dans votre dossier personnel

  2. Ouvrez le fichier et collez-le dans:

    #!/bin/bash
    eval `ssh-agent -s`
    ssh-add
    
  3. Cela suppose que votre clé est dans le classique ~/.ssh/id_rsa emplacement. Si ce n'est pas le cas, inclure un chemin complet après le ssh-add commander.

  4. Ajouter ou créer un fichier ~/.ssh/config avec le contenu

    ForwardAgent yes
    

    Dans le tutoriel original, le ForwardAgent param est Yesmais c'est une faute de frappe. Utilisez toutes les minuscules ou vous obtiendrez des erreurs.

  5. Redémarrez Msysgit. Il vous demandera d'entrer votre mot de passe une fois, et c'est tout (jusqu'à ce que vous mettiez fin à la session ou que votre agent ssh soit tué).

Mac OS X

Si vous ne voulez pas démarrer un nouvel agent ssh chaque fois que vous ouvrez un terminal, consultez Trousseau. Je suis sur un Mac maintenant, donc j'ai utilisé le tutoriel ssh-agent avec zsh & keychain sur Mac OS X pour le configurer, mais je suis sûr qu'une recherche Google aura beaucoup d'informations pour Windows.

Mettre à jour: Une meilleure solution sur Mac est d'ajouter votre clé au Mac OS Keychain:

ssh-add -K ~/.ssh/id_rsa

Aussi simple que cela.


189
2018-04-09 17:43



Impossible d'ouvrir une connexion à votre agent d'authentification

Pour résoudre cette erreur:

frapper:

$ eval `ssh-agent -s`

tcsh:

$ eval `ssh-agent -c`

Ensuite, utilisez ssh-add comme vous le feriez normalement.


Astuce chaude:

J'oubliais toujours ce qu'il fallait taper pour les commandes ssh-agent ci-dessus, donc j'ai créé un alias dans mon .bashrcfichier comme ceci:

alias ssh-agent-cyg='eval `ssh-agent -s`'

Maintenant, au lieu d'utiliser ssh-agent, Je peux utiliser ssh-agent-cyg

Par exemple.

$ ssh-agent-cyg
SSH_AUTH_SOCK=/tmp/ssh-n16KsxjuTMiM/agent.32394; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32395; export SSH_AGENT_PID;
echo Agent pid 32395;
$ ssh-add ~/.ssh/my_pk

Source d'origine du correctif:

http://cygwin.com/ml/cygwin/2011-10/msg00313.html


174
2017-07-17 08:54



J'ai fait face au même problème pour Linux, et voici ce que j'ai fait:

Fondamentalement, la commande ssh-agent démarre l'agent, mais il ne définit pas vraiment les variables d'environnement pour qu'il s'exécute. Il sort juste ces variables à la coquille.

Tu dois:

eval `ssh-agent`

puis faites ssh-add. Voir Impossible d'ouvrir une connexion à votre agent d'authentification.


103
2017-07-19 06:12



ssh-add et ssh (en supposant que vous utilisiez les implémentations de openssh) nécessitent une variable d'environnement pour savoir comment parler à l'agent ssh. Si vous avez démarré l'agent dans une fenêtre d'invite de commande différente de celle que vous utilisez actuellement ou si vous l'avez démarré de manière incorrecte, ni ssh-add ni ssh ne verront cet ensemble de variables d'environnement (car la variable d'environnement est définie localement à l'invite de commande, il est mis en).

Vous ne dites pas quelle version de ssh vous utilisez, mais si vous utilisez cygwin, vous pouvez utiliser cette recette de SSH Agent sur Cygwin:

# Add to your Bash config file
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

Cela lancera automatiquement un agent pour chaque nouvelle fenêtre d'invite de commande que vous ouvrez (ce qui est sous-optimal si vous ouvrez plusieurs invites de commande dans une session, mais au moins cela devrait fonctionner).


94
2017-11-03 11:53



Essayez les étapes suivantes:

1) Ouvrez Git Bash et lancez: cd ~/.ssh 

2) Essayez d'exécuter l'agent: eval $(ssh-agent)

3) En ce moment, vous pouvez exécuter la commande suivante: ssh-add -l 


87
2017-11-26 13:47



Dans Windows 10, j'ai essayé toutes les réponses énumérées ici, mais aucune d'elles ne semblait fonctionner. En fait, ils donnent une idée. Pour résoudre un problème, vous avez simplement besoin de 3 commandes. L'idée de ce problème est que ssh-add a besoin des variables d'environnement SSH_AUTH_SOCK et SSH_AGENT_PID à définir avec le chemin du fichier sock de l'agent ssh et le numéro de pid.

ssh-agent -s > temp.txt

Cela sauvera la sortie de ssh-agent dans le fichier. Le contenu du fichier texte sera quelque chose comme ceci:

SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3044; export SSH_AGENT_PID;
echo Agent pid 3044;

Copiez quelque chose comme "/tmp/ssh-kjmxRb2764/agent.2764" à partir du fichier texte et exécutez la commande suivante directement dans la console:

set SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764

Copiez quelque chose comme "3044" du fichier texte et exécutez la commande suivante directement dans la console:

set SSH_AGENT_PID=3044

Maintenant, lorsque les variables d'environnement (SSH_AUTH_SOCK et SSH_AGENT_PID) sont définies pour la session en cours de la console, exécutez votre commande ssh-add et il ne sera plus nécessaire de connecter l'agent ssh.


44
2018-06-12 13:58



À la place d'utiliser $ ssh-agent -s, J'ai utilisé $ eval `ssh-agent -s` pour résoudre ce problème.

Voici ce que j'ai effectué étape par étape (étape 2 sur GitBash):

  1. Nettoyé mon dossier .ssh à C:\user\<username>\.ssh\
  2. Généré une nouvelle clé SSH
    $ ssh-keygen -t rsa -b 4096 -C "xyz@abc.com"
  3. Vérifiez si un identifiant de processus (agent ssh) est déjà en cours d'exécution.
    $ ps aux | grep ssh
  4. (Facultatif) Si trouvé à l'étape 3, tuez les
    $ kill <pids>
  5. Démarrage de l'agent SSH
    $ eval \`ssh-agent -s 
  6. Ajout de la clé ssh générée à l'étape 2 à l'agent ssh
    $ ssh-add ~/.ssh/id_rsa

32
2018-01-07 10:31