Wie füge ich einen RSA-Schlüssel zur Datei authorized_keys hinzu?


89

Ich habe einen öffentlichen RSA-Schlüssel erstellt und möchte diesen zur authorized_keysDatei hinzufügen , aber auf meinem Ubuntu 11.10-Computer befindet sich keine solche Datei.

Wie kann ich den Schlüssel hinzufügen authorized_keys?

Antworten:


104

Stellen Sie sicher, dass Sie bei der Ausführung der Michael Krelin-Lösung Folgendes tun

cat <your_public_key_file> >> ~/.ssh/authorized_keys

Beachten Sie, dass das Doppelte >ohne das Doppelte >den vorhandenen Inhalt von autorisierten Schlüsseln überschreibt (nuked!) Und dies möglicherweise nicht wünschenswert ist


Sie müssen angeben, wie die Informationen zum öffentlichen Schlüssel ordnungsgemäß erfasst werden. Das einfache Kopieren und Einfügen reicht nicht aus. Zum Beispiel:
Einarc

4
Können Sie erklären, warum das Kopieren / Einfügen nicht funktioniert? Ich bin aufrichtig neugierig.
Mcsilvio

50
mkdir -p ~/.ssh/

Autorisierte Schlüssel überschreiben

cat <your_key >~/.ssh/authorized_keys

Zum Anhängen an das Ende von autorisierten Schlüsseln

cat <your_key >>~/.ssh/authorized_keys

Ich habe den Schlüssel auf der Clientseite generiert und diesen Schlüssel auf den Server kopiert, aber mit dem Befehl ssh 192.168.2.7 ist keine Anmeldung möglich.
Raji AC

Erlaubt kein Login, was zu sagen?
Michael Krelin - Hacker

Bei der Ausführung dieses Befehls wird nach dem Passwort des Servers gefragt. Ich möchte ein passwortloses Login
Raji AC

Befindet sich die ID (Pub-Teil) in ~ / .ssh / authorized_keys auf der Fernbedienung? Wird die ID (kein Pub-Teil) von ssh verwendet, wenn versucht wird, sich anzumelden? Sie können versuchen, es explizit mit anzugeben -i. Sie können auch versuchen ssh -v, die Berechtigungen Ihrer autorisierten Schlüssel auf der Fernbedienung zu überprüfen. Und überprüfen Sie die Protokolle dort.
Michael Krelin - Hacker

Können wir irgendwie überprüfen, ob der Schlüssel bereits hinzugefügt wurde? Wie es von ssh-copy-id für Remote-System gemacht wird
Dmitriusan

32

Ich weiß, dass ich zu spät antworte, aber für alle anderen, die dies benötigen, führen Sie den folgenden Befehl von Ihrem lokalen Computer aus

cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

das hat einwandfrei funktioniert. Alles was Sie tun müssen, ist nur zu ersetzen

user@192.168.1.1

mit Ihrem eigenen Benutzer für diesen bestimmten Host


31

In der ssh-Suite gibt es bereits einen Befehl, dies automatisch für Sie zu tun. Das heißt, Sie melden sich bei einem Remote-Host an und fügen den öffentlichen Schlüssel zu der Datei authorized_keys des Computers hinzu.

ssh-copy-id -i /path/to/key/file user@host.com

Wenn der Schlüssel, den Sie installieren, lautet ~/.ssh/id_rsa, können Sie das -iFlag sogar vollständig löschen.

Viel besser als manuell!


1
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
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.