Der einfachste Weg, um SSH-Schlüssel auf einen anderen Computer zu kopieren?


Zur akzeptierten Antwort gehen


Ich bin zu Hause faul und verwende die Kennwortauthentifizierung für meine Heimcomputer. Ich bin bereit, zur schlüsselbasierten Authentifizierung überzugehen. Es gibt viele Möglichkeiten im Internet, wie dies zu tun ist, einschließlich des Kattierens, des Überschreibens des Schlüssels, des direkten Überschreibens des Schlüssels usw.

Ich suche nach der einfachsten und empfohlenen Möglichkeit, einen Schlüssel zu kopieren. Gibt es hoffentlich irgendwo im Ubuntu-ssh-Paket einen Convenience-Wrapper?

Ich bin mir bereits darüber im Klaren, wie man Passwortanmeldungen abschaltet .


353





2010-09-27




Anzahl der Antworten: 6


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

 ssh-copy-id [email protected]
 

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

Die Standardidentität ist Ihr Standard-SSH-Schlüssel. Es besteht aus zwei Dateien (öffentlicher und privater Schlüssel) in Ihrem ~/.ssh Verzeichnis, in der Regel genannt identity , id_rsa , id_dsa , id_ecdsa oder id_ed25519 (und das gleiche 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 diese einfach automatisch aus.

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

Wenn der Server einen anderen als den Standardport ( 22 ) verwendet, sollten Sie die folgenden Anführungszeichen verwenden ( Quelle ):

 ssh-copy-id "[email protected] -p <port-number>"
 

475


2010-09-27

Ich mag die Antwort von Marcel. Ich kannte diesen Befehl nicht. Ich habe immer das verwendet, was ich auf der Oracle-Website gefunden hatte :

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

Ich dachte, es hier noch zu posten, weil es ein gutes Beispiel dafür ist, was mit Shell-Code mit der Kraft von erreicht werden kann ssh . Aber mit dem ssh-copy-id ist es definitiv sicherer, es richtig zu machen!

Beachten Sie, dass .ssh der obige Befehl fehlschlägt , wenn der Ordner noch nicht vorhanden ist. Darüber hinaus ist es möglicherweise besser, beim Erstellen der Datei eine möglichst geringe Berechtigung festzulegen (im Grunde nur Lese- und Schreibzugriff für Besitzer). Hier ist ein erweiterter Befehl:

 cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
 

132


2010-10-11

Grafische Methode

  1. Öffnen Sie AnwendungenPasswörter und SchlüsselMeine persönlichen Schlüssel .
  2. Wählen Sie Ihren Schlüssel aus und klicken Sie dann auf RemoteSchlüssel für Secure Shell konfigurieren .


Computer für SSH-Verbindung einrichten


31


2010-09-27

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

 ssh-import-id [launchpad account name]
 

Details :

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

     ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
     

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

  4. Speichern Sie den Schlüssel, indem Sie auf Öffentlichen Schlüssel importieren klicken
  5. Wenn alles geklappt hat, sollte Ihr Schlüssel jetzt unter SSH-Schlüssel aufgeführt sein:

Das Paket ssh-import-id muss auf dem Computer installiert sein, auf den von einem entfernten Standort aus zugegriffen werden muss. Dieses Paket wird zusammen mit dem openssh-server Paket installiert , da es ein empfohlenes Paket für ist openssh-server . Nachdem Sie sichergestellt haben, dass ssh-import-id auf dem Clientcomputer Folgendes installiert wurde, führen Sie Folgendes aus:

 ssh-import-id [launchpad account name]
 

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

Unter Ubuntu Lucid und früher können Sie dasselbe erreichen mit:

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

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


18


2011-06-10

für kundenspezifischen Hafen

 ssh-copy-id -i "[email protected] -p2222"
 

-i wechselt standardmäßig zu ~ / .ssh / id_rsa.pub. Wenn Sie einen anderen Schlüssel möchten, setzen Sie den Pfad des Schlüssels nach -i

WARNUNG: Wenn Sie das -i nicht geschrieben haben, werden alle Ihre in ~ / .ssh gefundenen Schlüssel kopiert


14


2013-03-08

ssh-copy-id macht genau das. Ich bin nicht sicher, warum einige der anderen Antworten hier ungenaue Informationen hinzufügen. Die Hilfe zeigt Folgendes:

 ~$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [[email protected]]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help
 

Ich habe gerade Folgendes auf einem Ubuntu 18.04-Client mit einem CentOS 7.6-Server versucht und es hat wie ein Zauber funktioniert. Das Beispiel zeigt die Verwendung eines benutzerdefinierten Ports von 2222 und die Angabe eines öffentlichen Schlüssels unter ~/.ssh/path-to-rsa.pub

 $ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 [email protected]
 

Bevor ich den Befehl ausgeführt habe, habe ich den -n Schalter am Ende tatsächlich verwendet , um einen Probelauf durchzuführen, der bestätigte, dass der Befehl wie beabsichtigt funktioniert. Nachdem ich es bestätigt hatte, führte ich den Befehl wie oben beschrieben ohne den -n Schalter erneut aus.


0


2019-06-02