Cygwin kann keinen SSH-Keygen generieren

Cygwin kann keinen SSH-Keygen generieren

Ich möchte einen SSH-Keygen über Cygwin generieren und beim Eingeben des Pfads tritt ein Problem auf (es passiert nichts).

Hier drücke ich einfach die Eingabetaste und nichts passiert:

Bildbeschreibung hier eingeben

Antwort1

Ich denke, Sie verwenden wahrscheinlich nicht Cygwin ssh-keygen. Was wird which ssh-keygenangezeigt? Das Nicht-Cygwin ssh-keygenauf meinem System (das mit PuTTY oder WinSCP installiert wurde, ich kann mich nicht erinnern, welches davon) zeigt dasselbe Verhalten, kann aber mit Folgendem zum Laufen gebracht werden:

ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"

Notiz:

  1. Geben Sie anstelle von Ihre eigene Passphrase ein passphraseoder -N ""verwenden Sie eine leere Passphrase.
  2. Der Pfad hat ein seltsames Format und ist unter verwurzelt C:. Ich habe Cygwin unter installiert C:\cygwin64, daher landen die Schlüssel ~/.sshin diesem Beispiel in meinem Cygwin-Home-Verzeichnis (). Machen Sie .sshzuerst Folgendes.

Oder Sie könnten einfach Cygwin installieren ssh-keygen. which ssh-keygensollte dann zurückgeben /usr/bin/ssh-keygen.

Antwort2

Verwenden Sie Schrägstriche für Cygwin-Pfade. Der umgekehrte Schrägstrich ist das „Escape-Zeichen“ in Linux (und daher auch in Cygwin).

$ cygpath --Hilfe

cygpathhilft beim Konvertieren von Pfaden und Dateinamen für/von/nach Cygwin.

Tipp: Verwenden Sie Linux-Pfade in Cygwin und Windows-Pfade in Windows.

Ungetestetes Beispiel:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa


Was Sie in Ihrem Beispiel () eingegeben haben, C:\Users\User/.shhs/id_rsaist am Ende gleich C:UsersUser/.shhs/id_rsa-, was höchstwahrscheinlich nicht das ist, was Sie wollen.

Das „Escape-Zeichen“ entfernt die spezielle Bedeutung des nachfolgenden Zeichens (normalerweise ein Sonderzeichen) und belässt das Zeichen buchstäblich so, wie es ist, in der Eingabe (dazu gehört noch mehr, aber genug hier).

Beispiel:

$ echo \$PATH=$PATH
$PATH=…
$

Antwort3

Erwägen Sie die VerwendungMicrosoft-Build von OpenSSH. Nurherunterladen OpenSSH-Win32.zipoder OpenSSH-Win64.zipextrahieren ssh-keygen.exeund verwenden – keine Installation erforderlich, keine Abhängigkeiten (von Cygwin oder anderen).

Wenn Sie Windows 10 Version 1803 oder neuer haben, ist OpenSSH bereits integriert. Für ältere Versionen können Sie es auch einfach alsOptionale Funktion „OpenSSH-Client“.

Siehe auchInstallieren Sie den OpenSSH SFTP-Client unter Windows 7.

Antwort4

Ich weiß, das ist ein Tumbleweed-Thread, aber ich habe die Lösung gefunden. Das Problem ist, dass versucht wird, die native Windows OpenSSH-Binärdatei zu verwenden, und die Verzeichnispfade kollidieren.

ICHder Windows OpenSSH-Client wurde entfernt, Cygwin mit den von Cygwin kompilierten OpenSSH-Binärdateien neu installiert und jetzt ssh-keygenfunktioniert es genau wie es sollte.

Es ist auch erwähnenswert, dass andere Dinge (wie rsync) wahrscheinlich aus demselben Grund fehlschlugen.

verwandte Informationen