Je rencontre 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'obtiens cette erreur ci-dessous:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent /bin/sh
et$ ssh-add $yourkey
git config --list
pour voir si vous avez définicredential.helper
- si vous l'avez, vous devez supprimer ce paramètre, car l'aide n'est pas utile.Réponses:
Avez-vous commencé
ssh-agent
?Vous devrez peut-être démarrer
ssh-agent
avant d'exécuter lassh-add
commande:Notez que cela démarrera l'agent pour msysgit Bash sous Windows . Si vous utilisez un shell ou un système d'exploitation différent, vous devrez peut-être utiliser une variante de la commande, comme celles répertoriées dans les autres réponses .
Voir les réponses suivantes:
Pour démarrer automatiquement ssh-agent et autoriser une seule instance à fonctionner dans plusieurs fenêtres de console, voir Démarrer ssh-agent à la connexion .
Pourquoi devons-nous utiliser
eval
au lieu de simplementssh-agent
?Pour savoir pourquoi, voir la réponse de Robin Green .
Clés publiques vs clés privées
De plus, chaque fois que j'utilise
ssh-add
, j'y ajoute toujours des clés privées. Le fichier~/.ssh/id_rsa.pub
ressemble à une clé publique, je ne sais pas si cela fonctionnera. Avez-vous un~/.ssh/id_rsa
dossier? Si vous l'ouvrez dans un éditeur de texte, cela signifie-t-il que c'est une clé privée?la source
ssh-add
que déchiffre simplement une clé privée chiffrée sur la machine hôte, afin qu'elle puisse être utilisée localement ... elle n'est jamais envoyée à personne . Je suppose que seules les clés publiques sont envoyées sur un réseau. Ma compréhension est-elle incorrecte?eval ssh-agent -s
marche, maisssh-agent
pas tout seul.SSH_AUTH_SOCK
IIRC). Si vous venez de lancer,ssh-agent
l'agent démarrera, mais SSH n'aura aucune idée où le trouver.J'ai essayé les autres solutions en vain. J'ai fait plus de recherches et j'ai constaté que la commande suivante fonctionnait. J'utilise Windows 7 et Git Bash .
Plus d'informations sur: https://coderwall.com/p/rdi_wq
la source
La commande suivante a fonctionné pour moi. J'utilise CentOS.
la source
ssh-add my.id_rsa
j'échouerais sur moi. Mais aexec ssh-agent zsh
donné un environnement où je pouvaisssh-add
sans problème. Et je suis à l'intérieur de mon conteneur docker :)MsysGit ou Cygwin
Si vous utilisez Msysgit ou Cygwin, vous pouvez trouver un bon tutoriel sur SSH-Agent dans msysgit et cygwin et bash :
Ajoutez un fichier appelé
.bashrc
dans votre dossier de départ.Ouvrez le fichier et collez-le:
Cela suppose que votre clé se trouve à l'
~/.ssh/id_rsa
emplacement conventionnel . Si ce n'est pas le cas, incluez un chemin complet après lassh-add
commande.Ajouter ou créer un fichier
~/.ssh/config
avec le contenuDans le tutoriel d'origine, le
ForwardAgent
paramètre estYes
, mais c'est une faute de frappe. Utilisez tout en minuscules ou vous obtiendrez des erreurs.Redémarrez Msysgit. Il vous demandera d'entrer une fois votre phrase secrète, 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 le trousseau . Je suis sur un Mac maintenant, j'ai donc utilisé le tutoriel ssh-agent avec zsh et porte-clés sur Mac OS X pour le configurer, mais je suis sûr qu'une recherche Google contiendra de nombreuses informations pour Windows.
Mise à jour : Une meilleure solution sur Mac consiste à ajouter votre clé au trousseau Mac OS:
Aussi simple que cela.
la source
eval `ssh-agent -s`
le processus ne s'arrête pas lorsque je quitte cygwin.ps -u $(whoami) | grep ssh-agent &> /dev/null || eval $(ssh-agent)
cas - sinon un nouvel agent ssh est démarré à chaque fois. Tué ma machine de temps en temps lorsque l'utilisateur avait des tâches cron.ForwardAgent yes
n'est pas nécessaire et constitue un risque de sécurité non théorique s'il est défini pour un serveur non approuvé. L'accès local à votre agent clé doit fonctionner quel que soit ce paramètre.Impossible d'ouvrir une connexion avec votre agent d'authentification
Pour résoudre cette erreur:
frapper:
tcsh:
Ensuite, utilisez
ssh-add
comme vous le feriez normalement.Astuce:
J'oubliais toujours quoi taper pour les commandes ssh-agent ci-dessus, j'ai donc créé un alias dans mon
.bashrc
fichier comme ceci:Maintenant, au lieu d'utiliser
ssh-agent
, je peux utiliserssh-agent-cyg
Par exemple
Source d'origine du correctif:
http://cygwin.com/ml/cygwin/2011-10/msg00313.html
la source
eval
commande à chaque fois que vous l'auriez précédemment exécutéessh-agent
. J'utilise un alias maintenant, voir la réponse mise à jour pour savoir comment je fais cela.fatal: Could not read from remote repository.
.J'ai rencontré le même problème pour Linux, et voici ce que j'ai fait:
Fondamentalement, la commande ssh-agent démarre l'agent, mais elle ne définit pas vraiment les variables d'environnement pour qu'il s'exécute. Il sort simplement ces variables dans le shell.
Tu dois:
puis faites ssh-add. Voir Impossible d'ouvrir une connexion à votre agent d'authentification .
la source
ssh-add et ssh (en supposant que vous utilisez les implémentations 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 commandes différente de celle que vous utilisez maintenant, ou si vous l'avez mal démarré, ni ssh-add ni ssh ne verront cet ensemble de variables d'environnement (car la variable d'environnement est définie localement sur la commande invite, il est installé).
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 :
Cela démarrera automatiquement un agent pour chaque nouvelle fenêtre d'invite de commandes que vous ouvrez (ce qui n'est pas optimal si vous ouvrez plusieurs invites de commande en une seule session, mais au moins cela devrait fonctionner).
la source
eval $(ssh-agent)
et je peux utiliser ssh sans mot de passe pour chaque nouvelle fenêtre de terminal.Courir
Pour obtenir plus de détails, vous pouvez rechercher
ou courir
la source
ssh-copy-id
sur ubuntu. Je ne sais pas pourquoi je n'ai pas pu ajouter la clé sans utiliserssh-agent
pour lancer bash.ssh-agent zsh; ssh-add
Essayez les étapes suivantes:
1) Ouvrez Git Bash et lancez:
cd ~/.ssh
2) Essayez d'exécuter l'agent:
eval $(ssh-agent)
3) Pour le moment, vous pouvez exécuter la commande suivante:
ssh-add -l
la source
ps aux | grep ssh
et lakill
commande dans la réponse de Rick pour tuer les agents. Après cela assh-add
fonctionné sans le commutateur -l (l'utilisation de -l a donné une erreur).eval 'ssh-agent'
comme dans la réponse de Rick n'a pas fonctionné, j'ai dû utilisereval $(ssh-agent)
comme dans la réponse de Chechoro ici.$(ssh-agent)
est équivalent`ssh-agent`
mais plus lisible.Au lieu 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 à partir de GitBash):
C:\user\<username>\.ssh\
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
$ ps aux | grep ssh
$ kill <pids>
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
la source
ssh-agent -s
et ajouter une clé plus ancienne en utilisant ssh-add ~ / .ssh / id_rsa. Si vous générez une nouvelle clé SSH, vous devrez mettre à jour cette clé dans tous vos services tels que github, bitbucket, etc.ssh-agent -s
" et "ssh-add ~ / .ssh / id_rsa".Dans Windows 10, j'ai essayé toutes les réponses répertoriées ici, mais aucune ne semblait fonctionner. En fait, ils donnent un indice. 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 que les variables d'environnement SSH_AUTH_SOCK et SSH_AGENT_PID soient définies avec le chemin du fichier sock de l'agent ssh et le numéro pid actuels.
Cela sauvera la sortie de ssh-agent dans un fichier. Le contenu du fichier texte ressemblera à ceci:
Copiez quelque chose comme "/tmp/ssh-kjmxRb2764/agent.2764" à partir du fichier texte et exécutez la commande suivante directement dans la console:
Copiez quelque chose comme "3044" à partir du fichier texte et exécutez la commande suivante directement dans la console:
Maintenant, lorsque les variables d'environnement (SSH_AUTH_SOCK et SSH_AGENT_PID) sont définies pour la session de console actuelle, exécutez votre commande ssh-add et il ne manquera plus de se connecter à l'agent ssh.
la source
set
parexport
Une chose que j'ai rencontrée est que cela
eval
n'a pas fonctionné pour moi en utilisant Cygwin, ce qui a fonctionné pour moissh-agent ssh-add id_rsa
.Après cela, je suis tombé sur un problème que ma clé privée était trop ouverte, la solution que j'ai réussi à trouver pour cela (à partir d' ici ):
aussi bien que
enfin j'ai pu utiliser:
la source
eval `ssh-agent`
, avec les accents graves`
autourssh-agent
, comme indiqué dans ma réponse ? Cela a très bien fonctionné pour moi à Cygwin. Vous semblez avoir raison, celassh-agent ssh-add
fonctionne également, au moins dans le msysgit Bash. Cependant, notez qu'ilid_rsa
s'agit de la clé par défaut utilisée, vous n'avez donc pas besoin de la spécifier avecssh-agent ssh-add id_rsa
.Pour amplifier la réponse de n3o pour Windows 7 ...
Mon problème était en effet que certaines variables d'environnement requises n'étaient pas définies, et n3o est correct que ssh-agent vous indique comment définir ces variables d'environnement, mais ne les définit pas réellement.
Étant donné que Windows ne vous permet pas de faire "eval", voici ce qu'il faut faire à la place:
Redirigez la sortie de ssh-agent vers un fichier batch avec
Utilisez maintenant un éditeur de texte tel que le Bloc-notes pour modifier temp.bat. Pour chacune des deux premières lignes: - Insérez le mot "set" et un espace au début de la ligne. - Supprimez le premier point-virgule et tout ce qui suit.
Supprimez maintenant la troisième ligne. Votre temp.bat devrait ressembler à ceci:
Exécutez temp.bat. Cela définira les variables d'environnement nécessaires au fonctionnement de ssh-add.
la source
Could not open a connection to your authentication agent.
lors de l'exécution de ssh-add dans Win10 PowerShell.Je viens de faire fonctionner ça. Ouvrez votre
~/.ssh/config
dossier.Ajoutez ce qui suit-
La page qui m'a donné l'indication Configurer SSH pour Git a dit que l'indentation d'espace unique est importante ... bien que j'aie eu ici une configuration de Heroku qui n'avait pas cet espace et fonctionne correctement.
la source
Si vous suivez ces instructions, votre problème sera résolu.
Si vous êtes sur une machine Mac ou Linux, tapez:
Si vous êtes sur une machine Windows, tapez:
la source
Permettez-moi de vous proposer une autre solution. Si vous venez d'installer Git 1.8.2.2 ou environ, et que vous souhaitez activer SSH, suivez les instructions bien écrites .
Tout à l'étape 5.6 où vous pourriez rencontrer un léger accroc. Si un agent SSH est déjà en cours d'exécution, vous pouvez obtenir le message d'erreur suivant lorsque vous redémarrez bash
Si vous le faites, utilisez la commande suivante pour voir si plusieurs processus ssh-agent sont en cours d'exécution
Si vous voyez plus d'un service ssh-agent, vous devrez tuer tous ces processus. Utilisez la commande kill comme suit (le PID sera unique sur votre ordinateur)
Exemple:
Après avoir supprimé tous les processus ssh-agent, exécutez le px aux | grep ssh à nouveau pour être sûr qu'ils ont disparu, puis redémarrez Bash.
Voila, vous devriez maintenant obtenir quelque chose comme ça:
Vous pouvez maintenant continuer à l'étape 5.7 et au-delà.
la source
Pour les utilisateurs de fenêtres, j'ai trouvé que cmd
eval `ssh-agent -s`
ne fonctionnait pas, mais utiliser git bash était un régaleval `ssh-agent -s`; ssh-add KEY_LOCATION
, et m'assurer que le service Windows "OpenSSH Key Management" n'était pas désactivéla source
Cela exécutera l'agent SSH et ne s'authentifiera que la première fois que vous en aurez besoin , pas à chaque fois que vous ouvrirez votre terminal Bash. Il peut être utilisé pour tout programme utilisant SSH en général, y compris ssh lui-même et scp. Ajoutez simplement ceci à
/etc/profile.d/ssh-helper.sh
:la source
ps -A | grep ssh-agent
oups h -C ssh-agent
devrait être utilisé à la place deps | grep ssh-agent
echo ssh-auth | bash
cela échouera.AddKeysToAgent yes
(ou utilisezprompt
) à votre entrée de configuration ssh (utilisezHost *
pour tous les hôtes.) De cette façon, le mot de passe SSH ne vous sera demandé que si vous essayez de vous connecter, sinon il vous sera peut-être demandé un mot de passe pour un simplegit diff
ougit status
.$HOME/.ssh
pourrait être plus robuste que/home/$(whoami)/.ssh
J'ai eu le même problème
Ubuntu
et les autres solutions ne m'ont pas aidé. J'ai finalement réalisé quel était mon problème. J'avais créé messsh
clés dans le/root/.ssh
dossier, donc même quand je courais enssh-add
tant que root, il ne pouvait pas faire son travail et continuer à direJ'ai créé mes clés publiques et privées ssh dans le
/home/myUsername/
dossier et j'ai utiliséalors j'ai couru
et le problème a été résolu de cette façon.
Remarque: Pour accéder à votre référentiel,
git
ajoutez votre mot de passe git lorsque vous créez desssh
clés avecssh-keygen -t rsa -C "your git email here"
.la source
Utilisez le paramètre -A lorsque vous vous connectez au serveur, par exemple:
à partir de la page de manuel:
la source
La solution de base à exécuter
ssh-agent
est répondue dans de nombreuses réponses. Cependant, en exécutantssh-agent
plusieurs fois (pour chaque terminal ouvert ou par connexion à distance), de nombreuses copies serontssh-agent
exécutées en mémoire. Les scripts suggérés pour éviter ce problème sont longs et nécessitent d'écrire et / ou de copier des fichiers séparés ou d'écrire trop de chaînes dans~/.profile
ou~/.schrc
. Permettez-moi de suggérer une solution simple à deux chaînes:Pour sh , bash , etc.:
Pour csh , tcsh , etc.:
Qu'est-ce ici:
ssh-agent
par nom et par utilisateur actuelssh-agent
et en s'exécutantssh-agent
si aucunssh-agent
processus utilisateur actuel n'a été trouvéIl n'est pas nécessaire de protéger le script shell créé
~/.ssh-agent.tcsh
ou l'~/.ssh-agent.sh
accès d'un autre utilisateur parce que: dans un premier temps, la communication avecssh-agent
est traitée via un socket protégé qui n'est pas accessible à d'autres utilisateurs, et dans un second temps, un autre utilisateur peut trouverssh-agent
socket simple par des fichiers d'énumération dans le/tmp/
répertoire. En ce qui concerne l'accès aussh-agent
processus, ce sont les mêmes choses.la source
Essayez ce qui suit:
la source
Lire la réponse de @ cupcake pour des explications. Ici, j'essaie seulement d'automatiser le correctif.
Si vous utilisez un terminal Cygwin avec BASH, ajoutez ce qui suit au fichier $ HOME / .bashrc. Cela ne démarre ssh-agent qu'une seule fois dans le premier terminal Bash et ajoute les clés à ssh-agent. (Je ne sais pas si cela est requis sous Linux)
N'OUBLIEZ PAS d'ajouter vos bonnes clés dans la commande "ssh-add".
la source
J'ai eu ce problème, lorsque j'ai démarré ssh-agent, alors qu'il était déjà en cours d'exécution. Obtient confus. Pour voir si c'est le cas, utilisez
pour voir si c'est la même chose que ce que vous pensiez que cela devrait être. Dans mon cas, c'était différent de celui que je venais de commencer.
Pour vérifier plus en détail si plusieurs agents ssh sont en cours d'exécution, vous pouvez consulter:
la source
eval $(ssh-agent)
est censé créer un nouvel agent avec un PID différent à chaque fois, bien que je puisse me tromper.J'ai eu un problème similaire lorsque j'essayais de faire fonctionner cela sur Windows pour me connecter à stash via ssh
Voici la solution qui a fonctionné pour moi.
Il s'avère que j'exécutais l'agent Pageant ssh sur ma boîte Windows - je vérifierais ce que vous exécutez. Je soupçonne que c'est Pageant car il vient par défaut avec Putty et winScp
Ssh-add ne fonctionne pas à partir de la ligne de commande avec ce type d'agent
Vous devez ajouter la clé privée via la fenêtre d'interface utilisateur de reconstitution historique que vous pouvez obtenir en double-cliquant sur l'icône Reconstitution historique dans la barre des tâches (une fois qu'elle est lancée).
Avant d'ajouter la clé à Pageant, vous devez la convertir au format PPK. Des instructions complètes sont disponibles ici Comment convertir la clé SSH au format ppk
C'est ça. Une fois que j'ai téléchargé ma clé pour la cacher, j'ai pu utiliser SourceTree pour créer un dépôt local et cloner la télécommande.
J'espère que cela t'aides...
la source
J'ai résolu l'erreur en arrêtant de force (tué) les processus git (agent ssh), puis en désinstallant Git, puis en réinstallant Git.
la source
En utilisant Git Bash sur Win8.1E, ma résolution était la suivante:
la source
/dev/null
? Votre réponse fait exactement la même chose que celle-ci .~/.ssh/id_rsa
c'est la clé par défaut, donc vous ne devriez pas avoir à spécifierssh-add ~/.ssh/id_rsa
, vous devez justessh-add
travailler.Si vous utilisez Putty, vous devrez peut-être définir l'option "Connexion / SSH / Auth / Autoriser le transfert d'agent" sur "true".
la source
Cela a fonctionné pour moi.
la source
Pour bash intégré à Windows 10, j'ai ajouté ceci à .bash_profile:
la source
$(ssh-agent -s)
pour définir l'environnement de l'agent.