2016-01-06 13 views
10

Ich bin auf Windows. Ich habe git und posh-git installiert (einige Helfer für Windows PowerShell). Ich kann Schlüssel mit ssh-add hinzufügen und kann mit github und meinem Webserver authentifizieren. Ich kann auch Git aus der PowerShell verwenden, um mit meinen Repositories zu interagieren.Verwenden von Git mit ssh-Agent unter Windows

Aber eins kann ich nicht: Ich benutze git-plus für den Atomeditor. Und ich bekomme es nicht zu meinem Repo zu schieben. Was ist mein Problem?

+0

Siehe http://haacked.com/archive/2011/12/19/get- git-for-windows.aspx/Details darüber, wie der ssh-Agent in posh-git funktioniert –

Antwort

14

posh-git und git for windows 2.7 sollten alles enthalten, was Sie benötigen, um eine ssh-agent einzurichten. Sobald Sie das Modul installiert haben, können Sie die Agenten mit so etwas wie starten:

Import-Module ~\Documents\WindowsPowerShell\Modules\posh-git\posh-git 
Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe" 
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe" 
Start-SshAgent -Quiet 

Sie dann der SSH_AUTH_SOCK Umgebungsvariable gesetzt sehen sollte:

C:\Code\Go\src\bosun.org\cmd\scollector [master]> gci env:SSH_AUTH_SOCK 

Name       Value 
----       ----- 
SSH_AUTH_SOCK     /tmp/ssh-6ORcVQvRBZ2e/agent.11668 

Welches ist das git-plus-Atom-Paket sollte in der Lage sein, zu verwenden, wenn Sie Befehle ausführen. Ich konnte Strg + Shift + H verwenden, um das Git-Menü in Atom aufzurufen, Push auswählen und dann zu einem Remote-Repo drücken (es werden keine Fehler angezeigt, wenn es fehlschlägt, aber der neue Zweig, den ich dorthin geschoben habe) .

Der ssh-agent muss gestartet werden, BEVOR Sie atom öffnen, damit die Umgebungsvariable SSH_AUTH_SOCK gesetzt wird. Wenn es immer noch nicht funktioniert können Sie ssh in Powershell testen, um zu überprüfen, dass es ohne Passwort verbinden:

Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe" 
ssh hostname 
+0

Ja, die Variable SSH_AUTH_SOCK ist gesetzt. Außerdem wurde die Verbindung ohne einen ungeschützten Schlüssel aus Atom und Git-Plus hergestellt. Agent läuft, Identitäten werden importiert. Ich kann eine Verbindung mit ssh herstellen, aber git-plus funktioniert nicht mit geschützten Schlüsseln. – LuMa

+0

Was meinen Sie mit geschützten Schlüsseln? –

+0

Schlüssel, die durch eine Passphrase geschützt sind. Zum Beispiel erstelle ich einen Schlüssel, der den GitHub-Dokumenten folgt: https://help.github.com/articles/generating-ssh-keys/ Erstelle einen Schlüssel (id_rsa), schütze ihn mit einer Passphrase und füge ihn dem ssh-Agenten hinzu. Dann füge ich es zu GitHub und meinem Webserver hinzu. Jetzt kann ich PowerShell, CD in mein lokales Projekt verwenden und push/pull ohne Eingabe der Passphrase des Schlüssels. Selbst die Verwendung von ssh zur Verbindung mit meinem Webserver funktioniert. Git-Plus funktioniert jedoch nicht. Nur wenn ich die Passphrase von meinem Schlüssel lösche (mit 'ssh-keygen -p'), wird git-plus es schaffen. Warum benutzt git-plus nicht den ssh-agent? – LuMa