Erstellen Sie einen SSH-Schlüssel:
$ ssh-keygen -t rsa –P ""
Verschieben des Schlüssels zum autorisierten Schlüssel:
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
bash
shell
ssh
io-redirection
sknit
quelle
quelle
Antworten:
Ein Element des Pfades
/home/user/.ssh/
existiert nicht; Die Shell (bash
) überprüft die Umleitung (>>
), bevor sie den Befehl (cat
) ausführt . Wenn/home/user
es existiert und Sie versuchen dies:Sie erhalten jetzt:
Da sich diese Datei nicht an diesem Ort befinden kann, wenn sie
/home/user/.ssh/
zunächst nicht vorhanden war.Sie folgen einigen Anweisungen, die möglicherweise einige Teile übersprungen haben. So erstellen Sie das Verzeichnis:
Allerdings
id_rsa.pub
wird nicht da sein. Es wird überall dort sein, wo Sie denssh-keygen
Befehl ausgeführt haben.quelle
Stellen Sie sicher, dass Sie als der Benutzer angemeldet sind, für den Sie zuerst den SSH-Schlüssel erstellen möchten (oder seien Sie bereit, die Pfade im Befehl zum richtigen Ausgangsverzeichnis zu ändern).
Dann erstellen Sie einfach das Verzeichnis:
Erstellen Sie die Datei mit dem
cat
oben aufgeführten Befehl. Vergessen Sie dann nicht, die Berechtigungen richtig einzustellen:Möglicherweise möchten Sie sicherstellen, dass das Verzeichnis .ssh auch über die entsprechenden Berechtigungen verfügt.
quelle
chmod 700 ~/.ssh
Wenn möglich, ermutige ich die Leute immer, das Kommandozeilen-Tool zu verwenden
ssh-copy-id
.Wenn Sie nur Ihren öffentlichen Standard-SSH-Schlüssel auf einen Remote-Server kopieren möchten, führen Sie einfach den folgenden Befehl aus:
Ich zeige ein aktuelles vollständiges Beispiel für die Verwendung dieses Tools in diesen Fragen und Antworten mit dem Titel: Eine SSH-Verbindung kann nicht mit rsync geteilt werden .
quelle
Dies kann auch fehlschlagen, wenn Sie beim Erstellen des Schlüssels mit
ssh-keygen
einen Dateinamen angeben. Ich habe einen Namen eingegebenmy-ssh-file-name
und er hat den Schlüssel/Users/MyUserName
anstelle des.ssh
Ordners geschrieben. Wenn Sie den Dateinamen leer lassen, wird.ssh
wie erwartet geschrieben.quelle
-f ~/.ssh/custom-key-name