Neu erstellte SSH-Schlüssel landeten in meinem Home-Ordner und nicht im Ordner „.ssh“, nachdem sie mit „ssh-keygen“ erstellt wurden

Ich habe das ssh-keygenmit High Sierra gebündelte Dienstprogramm verwendet, um Schlüssel zu erstellen, wie in diesem Seitentitel How to Create SSH Keys with OpenSSH on Linux or macOS at DigitalOcean.com beschrieben.

Seltsamerweise zeigte die Aufforderung zum Speichern der neuen Datei für Schlüssel den .ssh/id_rsaOrdner an. Die neuen Schlüssel wurden jedoch in meinem Home-Ordner gefunden.

Hier ist meine Sitzung, in der ich ein paar Dinge durch ersetzt habe blah_blah_blah.

Ich habe als Dateinamen acme. Das Dateipaar mit dem Namen acme& acme.pubwurde in meinem Home-Ordner gespeichert /Users/basilbourque, nicht .ssh.

MacBook-Pro:~ basilbourque$ which ssh-keygen
/usr/bin/ssh-keygen
MacBook-Pro:~ basilbourque$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/basilbourque/.ssh/id_rsa): acme
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in acme.
Your public key has been saved in acme.pub.
The key fingerprint is:
SHA256:blah_blah_blah basilbourque@MacBook-Pro.local
The key's randomart image is:
blah_blah_blah

➥ Haben Sie eine Idee, warum der in der Eingabeaufforderung angegebene Zielpfad ignoriert wurde?

Ein mögliches Problem: In meinem Ordner ist kein id_rsaOrdner verschachtelt .ssh, known_hostsdort wird nur eine Datei gefunden.

Ich frage aus zwei Gründen:

  • Reine Neugier.
    • Warum ssh-keygenzeigt das Dienstprogramm einen Pfad in der Eingabeaufforderung an, wenn es diesen Pfad ignoriert?
    • Warum ssh-keygenzeigt das Dienstprogramm einen Pfad zu einem nicht vorhandenen Ordner an?
  • Ich frage mich, ob dies dazu führen wird, dass das SSH-Verbindungstool die Schlüssel zum Anmelden bei einer neuen SSH-Verbindungssitzung nicht findet und verwendet.

Gibt es einen Ort, an dem ich diese Schlüssel verschieben sollte, damit sie vom SSH-Verbindungstool gefunden werden? (Ich bin neu in der Verwendung von ssh.)

Antworten (1)

Sie werden zur Eingabe eines Dateinamens aufgefordert, nicht eines Ordnernamens ( Enter **file** in which to save the key). Wenn Sie also nur mit einem Dateinamen antworten, werden die Schlüssel (mit diesem Namen) im aktuellen Verzeichnis gespeichert. .ssh/Sie können sie bei Bedarf einfach manuell verschieben . Wahrscheinlich müssen Sie ssh auch anweisen, Ihre Schlüssel anstelle der Standardschlüssel zu verwenden (oder Sie benennen Ihre Schlüssel in den Standardnamen um).

(A) Ich habe einen Dateinamen acmein den Text meiner Frage eingegeben. Warum steht dieser Pfad /Users/basilbourque/.ssh/id_rsain der Eingabeaufforderung für den Dateinamen, wenn die Schlüssel im aktuellen Verzeichnis landen? Und warum ein Pfad zu einem nicht existierenden Ordner? (B) Ich habe keine Ahnung, was Sie mit einem Standardnamen oder Standardschlüssel meinen könnten. Das macht für mich keinen Sinn, da eine Person möglicherweise auf eine beliebige Anzahl verschiedener Server mit jeweils einem anderen Schlüssel ssh-ing.
@BasilBourque Es fragt nach einer Datei, nicht nach einem Ordner.
@BasilBourque Bitte lesen Sie nach, wie ssh funktioniert. Sie erstellen ein Schlüsselpaar für Ihren Computer und kopieren den öffentlichen Schlüssel in die Datei „authorized_keys“ auf den Computern, an denen Sie sich anmelden möchten. Zumindest für einfache Operationen müssen nicht mehrere Schlüsselpaare auf derselben Maschine erstellt werden.
Weil /Users/[BENUTZERNAME]/.ssh/id_rsa der Standardname und -pfad für Ihre ID-Datei ist. So wie das Speichern in vielen anderen Programmen einen Namen und Ort vorschlägt, versucht ssh_keygen, Ihre ID als Datei "id_rsa" im Ordner /Users/[USERNAME]/.ssh zu speichern
Wenn Sie ihm einen anderen Namen geben und keinen Pfad angeben, wird es im aktuellen Verzeichnis gespeichert. Sie haben "acme" eingegeben, nicht "/Users/basilbourque/.ssh/acme"