Einfachste Möglichkeit, ssh-Schlüssel auf einen anderen Rechner zu kopieren?

293

Ich bin zu Hause faul und benutze die Passwortauthentifizierung für meine Heimcomputer. Ich bin bereit, zur schlüsselbasierten Authentifizierung überzugehen. Es gibt viele Möglichkeiten im Internet, wie man das macht, einschließlich Catting, dann den Schlüssel über den Schlüssel ziehen, den Schlüssel direkt überstreichen usw.

Ich bin auf der Suche nach dem einfachsten und empfohlenen Weg, um einen Schlüssel zu kopieren, hoffentlich gibt es einen Convenience-Wrapper irgendwo im Ubuntu ssh-Paket?

Ich bin mir bereits darüber im Klaren, wie man die Passwort-Anmeldung abstellt .

    
Jorge Castro 27.09.2010, 22:24
quelle

5 Antworten

405

Der Befehl ssh-copy-id (im Paket openssh-client und standardmäßig installiert) macht genau das:

ssh-copy-id user@hostname.example.com

kopiert den öffentlichen Schlüssel Ihrer Standardidentität (verwenden Sie -i identity_file für andere Identitäten) zum entfernten Host.

Die Standardidentität ist Ihr "Standard" -SH-Schlüssel. Es besteht aus zwei Dateien (öffentlicher und privater Schlüssel) in Ihrem ~/.ssh -Verzeichnis, normalerweise identity , id_rsa oder id_dsa (und dasselbe mit .pub ), abhängig von der Art des Schlüssels. Wenn Sie nicht mehr als einen SSH-Schlüssel erstellt haben, müssen Sie sich nicht um die Angabe der Identität kümmern, ssh-copy-id wählt sie einfach automatisch aus.

Falls Sie keine Identität haben, können Sie eine mit dem Tool ssh-keygen erzeugen.

Wenn der Server einen anderen Port als den Standardport verwendet ( 22 ), sollten Sie auf diese Weise Anführungszeichen verwenden ( Quelle ):

ssh-copy-id "user@hostname.example.com -p <port-number>"
    
Marcel Stimberg 27.09.2010, 23:01
quelle
111

Ich mag die Antwort von Marcel. Ich kannte diesen Befehl nicht. Ich habe immer das verwendet, was ich auf einer SUN-Website :

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Ich dachte, es hier noch zu posten, weil es eine gute Illustration dessen ist, was in shell code mit der Macht von ssh erreicht werden kann. Aber mit ssh-copy-id ist definitiv ein sicherer Weg, es richtig zu machen!

Beachten Sie, dass der obige Befehl fehlschlägt, wenn der Ordner .ssh noch nicht existiert. Außerdem könnte es besser sein, wenn die Datei erstellt wird, um eine minimale mögliche Berechtigung festzulegen (im Grunde nur für den Eigentümer schreibend). Hier ist ein fortgeschrittener Befehl:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
    
Huygens 12.10.2010 00:26
quelle
25

Grafische Methode

  1. Öffnen Sie Anwendungen Passwörter und Schlüssel Meine persönlichen Schlüssel .
  2. Wählen Sie Ihren Schlüssel aus und klicken Sie dann auf Remote Schlüssel für Secure Shell konfigurieren .

    
ændrük 27.09.2010 22:32
quelle
18

Unter Ubuntu können Sie Ihre Schlüssel vom Launchpad holen:

ssh-import-id [launchpad account name]

Details :

  1. Sie benötigen ein Launchpad-Konto, damit Sie sich anmelden oder ein Konto erstellen können
  2. Klicken Sie nach dem Anmelden auf die Schaltfläche neben SSH-Schlüssel:
  3. Fügen Sie den Inhalt Ihrer öffentlichen Schlüsseldatei in dieses Feld ein (einschließlich Kommentar). Ein solcher Schlüssel sieht folgendermaßen aus:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Hier zeigt ssh-rsa an, dass der Schlüssel ein RSA-Schlüssel ist, AAAAB3Nza .... UyDOFDqJp ist der tatsächliche Schlüssel und lekensteyn ist der Kommentar.

  4. Speichern Sie den Schlüssel, indem Sie Öffentlichen Schlüssel importieren drücken
  5. Wenn alles gut gegangen ist, sollte Ihr Schlüssel jetzt unter SSH-Schlüssel aufgelistet werden:

Das Paket ssh-import-id muss auf dem Rechner installiert sein, auf den von Remote zugegriffen werden muss. Dieses Paket wird zusammen mit dem Paket openssh-server installiert, da es ein empfohlenes Paket für openssh-server ist. Stellen Sie sicher, dass ssh-import-id installiert wurde. Führen Sie auf dem Client-Computer Folgendes aus:

ssh-import-id [launchpad account name]

Dadurch wird der öffentliche Schlüssel von den Launchpad-Servern über HTTPS heruntergeladen, was Sie vor MITM-Angriffen schützt.

Unter Ubuntu Lucid und vorher können Sie dasselbe mit:

erreichen
wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

Der Befehl echo wird benötigt, um nach der Zeile mit dem SSH-Schlüssel einen zusätzlichen Zeilenumbruch zu erhalten.

  • Handbuchseite von ssh-import-id
Lekensteyn 10.06.2011 21:20
quelle
12

für benutzerdefinierten Port

ssh-copy-id -i "user@hostname.example.com -p2222"

-i wechselt standardmäßig zu ~ / .ssh / id_rsa.pub. Wenn Sie einen anderen Schlüssel wünschen, geben Sie den Pfad des Schlüssels nach -i

ein

WARNUNG: Wenn Sie nicht das -i geschrieben haben, wird es alle Ihre Schlüssel aus ~ / .ssh

kopieren     
Omar A. Shaban 08.03.2013 21:16
quelle

Tags und Links