Wie führe ich ssh-add unter Windows aus?


75

Ich verfolge # 335 Deployment auf einem VPS und gegen Ende der Episode müssen wir ausgeführt werden ssh-add, um dem Server Zugriff auf Github Repo zu gewähren.

Das Problem ist, wie ich es in Windows ausführen kann? Was muss installiert werden?

Ich weiß, dass sshich verwenden kann, um auf den Remote-Server zuzugreifen Putty. Aber dieser Befehl muss lokal ausgeführt werden. Ich weiß, wie man Puttydas macht.


1
Tatsächlich. Das musst du nicht. Verwenden Sie Pageant (Puttys SSH-Agent) ... Wenn Sie dies tatsächlich auf Unix / Linux-Weise tun möchten, müssen Sie gitbash, mingw oder ähnliches installieren. Mit Pageant müssen Sie nicht.
Svin83

Antworten:


82

Man könnte Git für Windows installieren und anschließend ausführen ssh-add:

Schritt 3: Fügen Sie Ihren Schlüssel dem SSH-Agenten hinzu

So konfigurieren Sie das Programm ssh-agent für die Verwendung Ihres SSH-Schlüssels:

Wenn Sie GitHub für Windows installiert haben, können Sie damit Repositorys klonen und sich nicht mit SSH-Schlüsseln befassen. Es wird auch mit dem Git Bash-Tool geliefert, das die bevorzugte Methode zum Ausführen von Git-Befehlen unter Windows ist.

  1. Stellen Sie sicher, dass ssh-agent aktiviert ist:

    • Wenn Sie Git Bash verwenden, aktivieren Sie ssh-agent:

      # start the ssh-agent in the background
      ssh-agent -s
      # Agent pid 59566
      
    • Wenn Sie eine andere Terminal-Eingabeaufforderung wie msysgit verwenden, aktivieren Sie ssh-agent:

      # start the ssh-agent in the background
      eval $(ssh-agent -s)
      # Agent pid 59566
      
  2. Fügen Sie dem SSH-Agenten Ihren SSH-Schlüssel hinzu:

    ssh-add ~/.ssh/id_rsa
    

9
Wie führe ich die erste Zeile aus cd ~/.ssh? Wir sind in Fenstern, sollte es nicht so etwas wie 'C: /' sein?
cqcn1991

14
Scheint für mich zu arbeiten: Ich rufe an D:\>"c:\Program Files\Git\cmd\start-ssh-agent.cmd".
Bernhard Döbler

8
eval: Der Begriff 'eval' wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines bedienbaren Programms erkannt.
Chutipong Roobklom

8
Abgesehen von Git Bash ist diese Antwort völlig falsch, ebenso wie der Artikel, aus dem sie kopiert / eingefügt wurde.
Brad

9
@ BernhardDöbler start-ssh-agent.cmdsollte die richtige Antwort sein! Ich danke dir sehr!
Fantabolisch

165

Ursprüngliche Antwort mit dem Start-SSH-Agenten von git

Stellen Sie sicher, dass Sie Git installiert haben und den Git- cmdOrdner in Ihrem PATH haben. Auf meinem Computer lautet der Pfad zum cmd-Ordner von git beispielsweiseC:\Program Files\Git\cmd

Stellen Sie sicher, dass sich Ihre id_rsaDatei im Ordner befindetc:\users\yourusername\.ssh

Starten Sie Ihre Eingabeaufforderung neu, falls Sie dies noch nicht getan haben, und führen Sie sie dann aus start-ssh-agent. Es wird Ihre finden id_rsaund Sie zur Eingabe der Passphrase auffordern

Update 2019 - Eine bessere Lösung, wenn Sie Windows 10 verwenden: OpenSSH ist als Teil von Windows 10 verfügbar, was meiner Meinung nach die Verwendung von SSH von cmd / Powershell erheblich vereinfacht. Im Gegensatz zu meiner vorherigen Lösung muss Git auch nicht installiert sein.

  1. Öffnen Sie Manage optional featuresüber das Startmenü und stellen Sie sicher, dass Sie Open SSH Clientin der Liste haben. Wenn nicht, sollten Sie es hinzufügen können.

  2. Öffnen Sie Servicesvom Startmenü

  3. Scrollen Sie nach unten zu OpenSSH Authentication Agent> Rechtsklick> Eigenschaften

  4. Ändern Sie den Starttyp von Deaktiviert in eine der anderen drei Optionen. Ich habe meine eingestelltAutomatic (Delayed Start)

  5. Öffnen Sie cmd und geben Sie ein where ssh, um zu bestätigen, dass sich der oben aufgeführte Pfad in System32 befindet. Meins ist installiert bei C:\Windows\System32\OpenSSH\ssh.exe. Wenn es nicht in der Liste enthalten ist, müssen Sie möglicherweise cmd schließen und erneut öffnen.

Sobald Sie diese Schritte ausgeführt haben, sollten ssh-agent, ssh-add und alle anderen ssh-Befehle jetzt von cmd aus funktionieren. Um den Agenten zu starten, können Sie einfach eingeben ssh-agent.

  1. Optionaler Schritt / Fehlerbehebung : Wenn Sie git verwenden, sollten Sie die GIT_SSHUmgebungsvariable auf die Ausgabe setzen, where sshdie Sie zuvor ausgeführt haben (z C:\Windows\System32\OpenSSH\ssh.exe. B. ). Dies dient dazu, Inkonsistenzen zwischen der von Ihnen verwendeten Version von ssh (und dem Hinzufügen / Generieren Ihrer Schlüssel) und der von git intern verwendeten Version zu vermeiden. Dies sollte ähnliche Probleme vermeiden

Einige nette Dinge über diese Lösung:

  • Sie müssen den ssh-agent nicht jedes Mal neu starten, wenn Sie Ihren Computer neu starten
  • Von Ihnen hinzugefügte Identitäten (mit ssh-add) werden nach dem Neustart automatisch hinzugefügt. (Es funktioniert für mich, aber möglicherweise benötigen Sie eine Konfigurationsdatei in Ihrem Ordner c: \ Users \ User \ .ssh.)
  • Du brauchst keinen Idioten!
  • Sie können einen beliebigen privaten rsa-Schlüssel beim Agenten registrieren. Die andere Lösung nimmt nur einen Schlüssel mit dem Namen aufid_rsa

Hoffe das hilft


29
start-ssh-agent. Das ist alles, was ich brauchte, nachdem ich mich eine Stunde lang umgesehen hatte. Vielen Dank!
Tal Koren

2
Ich denke start-ssh-agent, funktioniert mit PowerShell. Ich habe jedoch PowerShell als Administrator ausgeführt, sodass dies möglicherweise der Schlüssel ist.
Trevor

Für mich war der Windows-Dienst "OpenSSH Authentication Agent" deaktiviert, dies half, thx
petrumo

Vielen Dank! Ich musste die Umgebungsvariable GIT_SSH so einstellen, dass Git auf das von Windows verwendete OpenSSH verweist, anstatt auf das interne.
Kirill Osenkov

Haben Sie eine Idee, wie Sie den Namen der Schlüsseldatei in etwas anderes als id_rsa ändern können?
Krzysztof Krzeszewski

9

Wenn Sie versuchen, einen Schlüssel für die Verwendung von git mit ssh einzurichten, können Sie immer eine Konfiguration für die Identitätsdatei hinzufügen.

vi ~/.ssh/config

Host example.com
IdentityFile ~/.ssh/example_key

2
Ich habe in jedem anderen Kommentar alles getan, aber das hat es schließlich für mich zum Laufen gebracht. Ich habe example.com durch github.com ersetzt, weil ich nicht klonen oder pushen konnte oder so (ich bekam den Fehler Git: Berechtigung verweigert (publickey))
namklabs

Mann. Ich verwende Windows 10 unter Windows 10, und dies war das einzige, was mir erlaubte, nicht standardmäßige rsa-Schlüsselnamen zu verwenden. Ich konnte ssh-add von OpenSSH nicht zum Laufen bringen, auch nicht ssh-add vom git ssh-Tool. Wenn Sie diese Konfigurationsdatei erstellen, wird sie schließlich sortiert.
Geoff Davids

9

Ich war schon einmal in einer ähnlichen Situation. In der Eingabeaufforderung geben Sie 'start-ssh-agent' und voila! Der ssh-Agent wird gestartet. Geben Sie die Passphrase ein, wenn Sie dazu aufgefordert werden.


Dies sollte höher sein. Funktioniert in Powershell oder CMD.
Ian Smith

'start-ssh-agent' wird nicht als interner oder externer Befehl
erkannt

8

Wenn Sie GitBash nicht verwenden, müssen Sie Ihren ssh-agent mit diesem Befehl starten

start-ssh-agent.cmd

Dies ist brutal in den Kommentaren begraben und schwer zu finden. Dies sollte als Antwort akzeptiert werden.

Wenn Ihr SSH-Agent nicht eingerichtet ist, können Sie PowerShell als Administrator öffnen und in den manuellen Modus versetzen

Get-Service -Name ssh-agent | Set-Service -StartupType Manual

6

Um ssh-addunter Windows zu laufen, könnte man git mit installieren choco install git. Der ssh-addBefehl wird erkannt, sobald C:\Program Files\Git\usr\biner als PATH-Variable hinzugefügt und die Eingabeaufforderung neu gestartet wurde:

C:\Users\user\Desktop\repository>ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)

C:\Users\user\Desktop\repository> 

2
Ja! Das Tun C:\Program Files\Git\usr\bindes Pfades hat es endlich behoben! Jeder hat alle möglichen anderen Ordner erstellt, \Gitaber nicht usr \ bin
Noitidart

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.