Windows 10 SSH-Schlüssel

112

Es fällt mir wirklich schwer, meine SSH-Schlüssel nach der Installation von Windows 10 zum Laufen zu bringen. Die normale Methode besteht darin, sie zu erstellen und in das Benutzerkonto unter .ssh zu werfen. Dieser Ordner scheint in Windows 10 nicht verfügbar zu sein.

Ist noch jemand darauf gestoßen? Ich brauche 3 SSH-Schlüssel für verschiedene Repos und das hält mich wirklich auf.

Rudenate3
quelle
2
Versteckt Windows 10 Punktordner?
Leland Barton
Nein, das hatte ich mir auch zuerst gedacht, aber seit der Installation wurden einige hinzugefügt.
Rudenate3
2
Bitte verschieben Sie Ihre Frage an Super User . Es ist hier nicht zum Thema .
Martin Prikryl
3
@MartinPrikryl Da viele Codierungen unter Linux, die Verwendung von Github usw. ssh- und .ssh-Schlüssel beinhalten, würde ich argumentieren, dass dies für Stackoverflow sehr thematisch ist.
Haziz
2
Ich stimme Martin zu. Eine Programmierfrage ist eine Frage zum Schreiben eines Programms, keine Frage, die ein Programmierer stellen könnte.
Bacon Bits

Antworten:

130
  1. Öffnen Sie die Windows-Befehlszeile (geben Sie "cmd" in das Suchfeld ein und drücken Sie die Eingabetaste).
  2. Es wird standardmäßig Ihr Home-Ordner verwendet, sodass Sie keinen anderen Ordner benötigen cd.
  3. Art ssh-keygen
  4. Befolgen Sie die Anweisungen und Sie können loslegen
  5. Ihre SSH-Schlüssel sollten im ausgewählten Verzeichnis gespeichert sein. Die Standardeinstellung lautet: /c/Users/YourUserName/.ssh/id_rsa.pub

ps: Wenn Sie git mit Bash-Integration installiert haben (wie ich), öffnen Sie im ersten Schritt "Git Bash" anstelle von "cmd"

Digital Fun Frenzy
quelle
36
Das sieht gut aus, außer es funktioniert nicht. Es gibt keinen Befehlssh-keygen
Roberto Tomás
10
Aus irgendeinem Grund musste ich den ssh-keygenBefehl in der Git-Bash-Shell anstelle der Cmd-Shell ausführen .
Olian04
6
Dafür können Sie Git Bash Sheel oder Git Cmd verwenden. Sie können Windows Cmd nicht verwenden.
Pavan T
6
Ab Dezember 2018 hat es in Win 10 für mich
Urs
1
@Suncatcher Ja. Für die Anmeldung bei Github, DigitalOcean usw. benötigen Sie den öffentlichen Schlüssel in "id_rsa.pub" im selben Ordner. Öffnen Sie es mit einem Texteditor wie dem Editor und kopieren Sie es, wo immer Sie Ihren SSH-Schlüssel hinzufügen müssen.
Gans
57

2019-04-07 UPDATE: Ich habe heute mit einer neuen Version von Windows 10 (Build 1809, "Update vom Oktober 2018") getestet und nicht nur der offene SSH-Client befindet sich nicht mehr in der Beta, da er bereits installiert ist. Sie müssen also nur den Schlüssel erstellen und Ihren Client so einstellen, dass er Open SSH anstelle von Putty (pagent) verwendet:

  1. Eingabeaufforderung öffnen (cmd)
  2. Geben Sie ein ssh-keygenund drücken Sie die Eingabetaste
  3. Drücken Sie die Eingabetaste für alle Einstellungen. Jetzt wird Ihr Schlüssel in c: \ Users \ .ssh \ id_rsa.pub gespeichert
  4. Öffnen Sie Ihren Git-Client und stellen Sie ihn auf Open SSH ein

Ich habe auf Git Extensions und Source Tree getestet und es hat mit meinem persönlichen Repo in GitHub funktioniert. Wenn Sie sich in einer früheren Windows-Version befinden oder einen grafischen Client für SSH bevorzugen, lesen Sie bitte unten.

2018-06-04 UDPATE:

Unter Windows 10 veröffentlicht winverMicrosoft ab Version 1709 (Win + R und Typ , um die Build-Nummer zu ermitteln) eine Beta- Version des OpenSSH-Clients und -Servers. Um einen Schlüssel erstellen zu können, müssen Sie den OpenSSH-Server installieren. Gehen Sie dazu folgendermaßen vor:

  1. Öffnen Sie das Startmenü
  2. Geben Sie "optionale Funktion" ein
  3. Wählen Sie "Optionale Funktion hinzufügen".
  4. Klicken Sie auf "Feature hinzufügen".
  5. Installieren Sie "Open SSH Client"
  6. Starte den Computer neu

Jetzt können Sie eine Eingabeaufforderung öffnen ssh-keygenund der Client wird von Windows erkannt. Ich habe das nicht getestet. Wenn Sie Windows 10 nicht haben oder die Beta nicht verwenden möchten, befolgen Sie die nachstehenden Anweisungen zur Verwendung von Putty.


ssh-keygenwird nicht mit Windows installiert geliefert. So erstellen Sie mit Putty einen SSH-Schlüssel:

  1. Kitt installieren
  2. Öffnen Sie PuttyGen
  3. Überprüfen Sie den Schlüsseltyp und die Anzahl der zu verwendenden BytesPuttyGen-Parameter
  4. Bewegen Sie die Maus über den Fortschrittsbalken Schlüssel mit Mauseingabe generieren
  5. Jetzt können Sie eine Passphrase definieren und die öffentlichen und privaten Schlüssel speichern Schlüssel erstellt Dialog

Für openssh-Schlüssel sind einige weitere Schritte erforderlich:

  1. Kopieren Sie den Text aus dem Textfeld "Öffentlicher Schlüssel zum Einfügen" und speichern Sie ihn als "id_rsa.pub".
  2. Um den privaten Schlüssel im OpenSh-Format zu speichern, gehen Sie zu Konvertierungen-> OpenSSH-Schlüssel exportieren (wenn Sie keinen Passkey definiert haben, werden Sie aufgefordert, zu bestätigen, dass Sie keinen Passschlüssel möchten). Menü zum Konvertieren des Schlüssels in das OpenSSH-Format
  3. Speichern Sie es als "id_rsa"

Jetzt sind die Schlüssel gespeichert. Starten Sie pagentund fügen Sie dort den privaten Schlüssel hinzu (die ppk-Datei im Putty-Format) pagent Schlüsseldialog

Denken Sie daran, dass dies ausgeführt werden pagentmuss, damit die Authentifizierung funktioniert

Franksands
quelle
6
ssh-keygen ist in Windows 10 enthalten, nicht sicher, welche Version, in "Optionale Funktionen verwalten"
sebbu
1
@sebbu In der Tat können Sie jetzt unter Windows 10 eine Beta des Open SSH-Servers unter "Optionale Funktionen verwalten" installieren. Dadurch erhalten Sie ssh-keygen und einige andere Dinge. Aber es wird nicht installiert und ist nicht gerade leicht zu finden. Ich werde meine Antwort aktualisieren.
Franksands
1
@KarlMorrison pagent ist die GUI, um die SSH-Authentifizierung durchzuführen. Es befindet sich normalerweise im Startmenü.
Franksands
1
Sie müssen den Open SSH Server nicht installieren. Die Open SSH Client-Funktion enthält ssh-keygen.
Onots
1
@Onots Ich habe mit einer neuen Version von Windows 10 (Oktober 2018 Update) getestet und nicht nur Open SSH Client ist genug, sondern es ist bereits installiert: D Ich werde meine Antwort aktualisieren
Franksands
31

WINDOWS: Wenn Sie Git für Windows installiert haben, gehen Sie zu seinem Ordner.

Geben Sie hier die Bildbeschreibung ein

Suchen Sie im bin-Verzeichnis. Es gibt eine sh.exe-Datei. Führen Sie das aus.

Geben Sie hier die Bildbeschreibung ein

Geben Sie dann Folgendes ein:

ssh-keygen -t rsa -C "Ihre E-Mail hier"

Befolgen Sie die Anweisungen und geben Sie Folgendes ein:

cat ~ / .ssh / id_rsa.pub | Clip

Es kopiert den Schlüssel in Ihre Zwischenablage. Jetzt können Sie diesen öffentlichen Schlüssel auf der Serverseite einfügen.

Daniel
quelle
13
  1. Öffnen Sie die Windows-Befehlszeile (geben Sie "cmd" in das Suchfeld ein und drücken Sie die Eingabetaste).
  2. Es wird standardmäßig Ihr Home-Ordner verwendet, sodass Sie keinen anderen Ordner benötigen cd.
  3. Art mkdir .ssh
aruanoc
quelle
9

Warnung: Wenn Sie Ihre Schlüssel unter C: /User/username/.ssh (dem Standardspeicherort) speichern, müssen Sie Ihre Schlüssel irgendwo sichern (z. B. in Ihrem Passwort-Manager).

Nach dem letzten Windows 10-Update (Version 1607) war mein .ssh-Ordner leer. Hier waren meine Schlüssel schon immer, aber Windows hat beschlossen, sie beim Aktualisieren zu löschen.

Zum Glück hatte ich meine Schlüssel gesichert ... Aber ... ich wette, einige Leute werden heute ihre PCs zurücksetzen.

Andrew
quelle
Wo erwarten die meisten Apps, dass Sie Ihre Schlüssel speichern?
Wcochran
3
wahrscheinlich in dem Ordner, den Windows beim Upgrade von Windows 10 zufällig löscht?
Andrew
8

Ich verwende Microsoft Windows 10 Pro, Version 10.0.17763 Build 17763, und sehe meinen .ssh-Ordner problemlos unter C: \ Users \ jrosario \ .ssh, ohne Berechtigungen oder ähnliches bearbeiten zu müssen (obwohl ich im Datei-Explorer ausgewählt habe "Versteckte Dateien, Ordner und Laufwerke anzeigen"): Geben Sie hier die Bildbeschreibung ein

Die Schlüssel werden in einer Textdatei mit dem Namen unknown_hosts gespeichert, die ungefähr so ​​aussieht: Geben Sie hier die Bildbeschreibung ein

ShieldOfSalvation
quelle
5

Ich habe eine bemerkenswerte Ausnahme gefunden, dass in Windows 10 unter Verwendung der beschriebenen Route die Dateien nur dann in den Ordner geschrieben wurden, wenn die Dateinamen nicht im ssh-keygen-Generator angegeben wurden.

Durch die Angabe eines benutzerdefinierten Schlüsselnamens wurden die Dateien mit den öffentlichen und privaten RSA-Schlüsseln nicht in den Ordner geschrieben.

  • Öffnen Sie die Windows-Befehlszeile
  • Art ssh-keygen
  • Lassen Sie den Dateinamen leer, drücken Sie einfach die Eingabetaste.
  • Stellen Sie Ihre Passphrase ein
  • Generieren Sie Ihre Schlüsseldateien. Sie werden jetzt existieren. und gespeichert werden inc:/Users/YourUserName/.ssh/

( Verwenden der Admin-Befehlszeile und von Windows 10 Pro )

Martin
quelle
@Braineeee negativ. Dadurch werden Ihre Schlüssel NICHT überschrieben. Wenn derzeit Schlüssel im Ziel vorhanden sind, werden Sie im Befehlszeilenfenster gefragt, ob Sie diese Schlüssel überschreiben möchten. Andere Schlüssel im selben Ordner sind nicht betroffen . Ich weiß, dass ich nach dem Lesen Ihres Kommentars einen Testlauf durchgeführt habe und festgestellt habe, dass dies so ist.
Martin
Hast du jemals herausgefunden warum?
Damainman
@ Damainman leider hatte ich noch keine Gelegenheit, dies mehr zu erkunden, also nein:-/
Martin
1
Danke @Martin, du hast meinen Tag gerettet. Ich kann die Dateien mit unterschiedlichen Namen erstellen. Wir müssen das Pfadtrennzeichen auf Unix-Weise bereitstellen! Folgendes hat bei mir funktioniert. ssh-keygen -t ed25519 -C "Mein Github-Schlüssel" Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (C: \ Benutzer \ bilix / .ssh / id_ed25519): c: \ Benutzer \ bilix \ .ssh \ id_ed25519_github
Prakash P
@PrakashP gerne helfen!
Martin
4

Erstellen Sie einen privaten / öffentlichen Schlüssel:

  1. Öffnen Sie Terminal ( git bash, PowerShell, cmd.exeetc.)
  2. Eintippen ssh-keygen
  3. Drücken Sie die Eingabetaste, um die Standarddatei zu speichern ( ~/.ssh/id_rsa)
  4. Drücken Sie die Eingabetaste für die Standard-Passphrase (keine Passphrase).
  5. Drücken Sie erneut die Eingabetaste
  6. Blick auf die Ausgabe und stellen Sie sicher , dass die RSAist 3072oder höher

Sie haben jetzt ein privates / öffentliches Schlüsselpaar erstellt.

Für GIT muss der Schlüssel eine Stärke von haben 2048, sich im Benutzerverzeichnis befinden .sshund aufgerufen werden id_rsaund id_rsa.pub. Stellen Sie beim Einfügen der Schlüssel an einer beliebigen Stelle sicher, dass Sie ein Programm verwenden, das keine neuen Zeilen wie VIM hinzufügt.

K - Die Toxizität in SO nimmt zu.
quelle
2

Ich habe es endlich zum Laufen gebracht, indem ich die Befehlszeile mit "Administrator ausführen" geöffnet habe, obwohl ich bereits Administrator war und das Verzeichnis manuell erstellen konnte

adelaidedave
quelle
1

Wenn Sie Windows 10 mit dem OpenSSH-Client haben, können Sie den Schlüssel möglicherweise generieren, aber Sie werden Probleme haben, ihn auf die Linux-Zielbox zu kopieren, da der Befehl ssh-copy-id nicht Teil des Client-Toolset ist.

Nachdem ich dieses Problem hatte, schrieb ich eine kleine PowerShell-Funktion, um dieses Problem zu beheben, die Sie Ihrem Profil hinzufügen.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

Sie können das Wesentliche hier bekommen

Ich habe eine kurze aufzuschreiben darüber hier

Rad
quelle
0

Sie können auch versuchen (für Windows 10 Pro), Powershell als Administrator auszuführen und einzugeben ssh-keygen -t rsa -b 4096 -C "[email protected]"

chavy
quelle