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?

Raji AC
quelle

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

donden1
quelle
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
Michael Krelin - Hacker
quelle
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 [email protected] "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

[email protected]

mit Ihrem eigenen Benutzer für diesen bestimmten Host

Faisal Sarfraz
quelle
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 [email protected]

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!

tkarls
quelle
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
i_tanova
quelle