Ich stoße auf diesen Fehler:
$ 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.
Ich habe versucht, die Schlüssel hinzuzufügen und erhalte die folgende Fehlermeldung:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
Wenn Sie Msysgit oder Cygwin verwenden, finden Sie eine gute Anleitung unter SSH-Agent in msysgit und cygwin und bash:
Fügen Sie eine Datei namens .bashrc
zu Ihrem Home-Ordner hinzu.
Öffnen Sie die Datei und fügen Sie sie ein:
#!/bin/bash
eval `ssh-agent -s`
ssh-add
Dies setzt voraus, dass sich Ihr Schlüssel im konventionellen Verzeichnis ~/.ssh/id_rsa
befindet. Wenn das nicht der Fall ist, fügen Sie einen vollständigen Pfad nach dem ssh-add
Befehl ein.
Fügen Sie die Datei ~/.ssh/config
hinzu oder erstellen Sie sie mit dem Inhalt
ForwardAgent ja
Im Original-Tutorial ist der ForwardAgent
-Parameter Yes
, aber das ist ein Tippfehler. Verwenden Sie alle Kleinbuchstaben, sonst erhalten Sie Fehler.
Wenn du nicht jedes Mal einen neuen ssh-Agenten starten willst, wenn du ein Terminal öffnest, schau dir Keychain an. Da ich jetzt einen Mac benutze, habe ich das Tutorial ssh-agent with zsh & keychain on Mac OS X benutzt, um es einzurichten, aber ich bin sicher, dass eine Google-Suche viele Informationen für Windows liefert.
Aktualisierung: Eine bessere Lösung auf dem Mac ist, den Schlüssel zum Mac OS Schlüsselbund hinzuzufügen:
ssh-add -K ~/.ssh/id_rsa
So einfach ist das.
ssh-add und ssh (sofern Sie die openssh-Implementierungen verwenden) benötigen eine Umgebungsvariable, um zu wissen, wie sie mit dem ssh-Agenten kommunizieren können. Wenn Sie den Agenten in einem anderen Eingabeaufforderungsfenster gestartet haben als dem, das Sie jetzt verwenden, oder wenn Sie ihn falsch gestartet haben, sehen weder ssh-add noch ssh, dass die Umgebungsvariable gesetzt ist (weil die Umgebungsvariable lokal in der Eingabeaufforderung gesetzt ist, in der sie gesetzt wurde).
Sie sagen nicht, welche Version von ssh Sie benutzen, aber wenn Sie die von Cygwin benutzen, können Sie dieses Rezept aus SSH Agent on Cygwin verwenden:
# 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
Dies startet automatisch einen Agenten für jedes neue Eingabeaufforderungsfenster, das Sie öffnen (was suboptimal ist, wenn Sie mehrere Eingabeaufforderungen in einer Sitzung öffnen, aber zumindest sollte es funktionieren).
Lassen Sie mich eine andere Lösung anbieten. Wenn Sie gerade Git 1.8.2.2 oder so ähnlich installiert haben und SSH aktivieren wollen, folgen Sie der gut geschriebenen [Anleitung] (https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git).
Führen Sie alles bis zu Schritt 5.6 durch, wo Sie möglicherweise auf einen kleinen Haken stoßen. Wenn bereits ein SSH-Agent läuft, könnten Sie beim Neustart der Bash folgende Fehlermeldung erhalten
Could not open a connection to your authentication agent
Wenn dies der Fall ist, verwenden Sie den folgenden Befehl, um festzustellen, ob mehr als ein ssh-agent-Prozess läuft
ps aux | grep ssh
Wenn Sie mehr als einen ssh-agent-Dienst sehen, müssen Sie alle diese Prozesse beenden. Verwenden Sie den kill-Befehl wie folgt (die PID wird auf Ihrem Computer eindeutig sein)
kill <PID>
Beispiel:
kill 1074
Nachdem Sie alle ssh-agent-Prozesse entfernt haben, führen Sie den Befehl px aux | grep ssh erneut aus, um sicherzugehen, dass sie verschwunden sind, und starten Sie dann die Bash neu.
Voila, Sie sollten jetzt etwas wie das hier erhalten:
Initializing new SSH agent...
succeeded
Enter passphrase for /c/Users/username/.ssh/id_rsa:
Jetzt können Sie mit Schritt 5.7 und darüber hinaus fortfahren.