Mit ssky-keygen und ssh-copy können Sie sich in 3 einfachen Schritten bei einem Remote-Linux-Server anmelden, ohne ein Passwort einzugeben -id wie in diesem Artikel erklärt.
ssh-keygen erstellt die öffentlichen und privaten Schlüssel. ssh-copy-id kopiert den öffentlichen Schlüssel des lokalen Hosts in die Datei „authorized_keys“ des entfernten Hosts. ssh-copy-id weist auch dem Home des Remote-Hosts, ~/.ssh und ~/.ssh/authorized_keys die richtige Berechtigung zu.
Dieser Artikel erklärt auch 3 kleinere Ärgernisse bei der Verwendung von ssh-copy-id und wie man ssh-copy-id zusammen mit ssh-agent verwendet.
Schritt 1:Erstellen Sie öffentliche und private Schlüssel mit ssh-key-gen auf dem lokalen Host
jsmith@local-host$ [Note: You are on local-host here] jsmith@local-host$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key] Enter passphrase (empty for no passphrase): [Press enter key] Enter same passphrase again: [Pess enter key] Your identification has been saved in /home/jsmith/.ssh/id_rsa. Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host
Schritt 2:Kopieren Sie den öffentlichen Schlüssel mit ssh-copy-id auf den Remote-Host
jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host jsmith@remote-host's password: Now try logging into the machine, with "ssh 'remote-host'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Hinweis: ssh-copy-id anhängt die Schlüssel zum .ssh/authorized_key.
des Remote-HostsSchritt 3:Melden Sie sich beim Remote-Host an, ohne das Passwort einzugeben
jsmith@local-host$ ssh remote-host Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 [Note: SSH did not ask for password.] jsmith@remote-host$ [Note: You are on remote-host here]
Die obigen 3 einfachen Schritte sollten in den meisten Fällen die Arbeit erledigen.
Wir haben früher auch ausführlich darüber gesprochen, wie man SSH und SCP von openSSH zu openSSH durchführt, ohne ein Passwort einzugeben.
Wenn Sie SSH2 verwenden, haben wir zuvor über die Ausführung von SSH und SCP ohne Passwort von SSH2 zu SSH2, von OpenSSH zu SSH2 und von SSH2 zu OpenSSH gesprochen.
Verwendung von ssh-copy-id zusammen mit ssh-add/ssh-agent
Wenn kein Wert für die Option -i übergeben wird und If ~/.ssh/identity.pub ist nicht verfügbar, ssh-copy-id zeigt die folgende Fehlermeldung an.
jsmith@local-host$ ssh-copy-id -i remote-host /usr/bin/ssh-copy-id: ERROR: No identities found
Wenn Sie Schlüssel in den ssh-agent geladen haben mit dem ssh-add , dann ssh-copy-id erhält die Schlüssel vom ssh-agent auf den Remote-Host zu kopieren. h., es kopiert die von ssh-add -L bereitgestellten Schlüssel Befehl an den Remote-Host, wenn Sie option -i nicht übergeben an die ssh-copy-id .
jsmith@local-host$ ssh-agent $SHELL jsmith@local-host$ ssh-add -L The agent has no identities. jsmith@local-host$ ssh-add Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa) jsmith@local-host$ ssh-add -L ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa jsmith@local-host$ ssh-copy-id -i remote-host jsmith@remote-host's password: Now try logging into the machine, with "ssh 'remote-host'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. [Note: This has added the key displayed by ssh-add -L]
Drei kleinere Ärgernisse von ssh-copy-id
Es folgen einige kleinere Ärgernisse der ssh-copy-id.
- Öffentlicher Standardschlüssel: ssh-copy-id verwendet ~/.ssh/identity.pub als standardmäßige öffentliche Schlüsseldatei (d. h. wenn kein Wert an option -i übergeben wird ). Stattdessen möchte ich, dass es id_dsa.pub oder id_rsa.pub oder identity.pub als Standardschlüssel verwendet. d.h. wenn einer von ihnen existiert, sollte er diesen auf den Remote-Host kopieren. Wenn zwei oder drei davon existieren, sollte es standardmäßig identity.pub kopieren.
- Der Agent hat keine Identitäten: Wenn der ssh-agent läuft und das ssh-add -L „The agent has no identities“ zurückgibt (d. h. dem ssh-agent werden keine Schlüssel hinzugefügt), kopiert die ssh-copy-id dennoch die Nachricht „The agent has no identities“ in den „authorized_keys“-Eintrag des entfernten Hosts.
- Doppelter Eintrag in Authorized_Keys: Ich möchte, dass ssh-copy-id doppelte Einträge auf den authorisierten_Schlüsseln des Remote-Hosts validiert. Wenn Sie ssh-copy-id mehrmals auf dem lokalen Host ausführen, wird derselbe Schlüssel weiterhin an die Datei „authorized_keys“ des Remote-Hosts angehängt, ohne auf Duplikate zu prüfen. Auch bei doppelten Einträgen funktioniert alles wie erwartet. Aber ich möchte, dass meine Datei "authorized_keys" übersichtlich bleibt.
Wenn Ihnen dieser Artikel gefällt, markieren Sie ihn bitte auf Delicious und stolpern .