GNU/Linux >> LINUX-Kenntnisse >  >> Linux

3 Schritte zur SSH-Anmeldung ohne Passwort mit ssh-keygen &ssh-copy-id

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-Hosts

Schritt 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.

  1. Ö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.
  2. 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.
  3. 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 .


Linux
  1. Wie kann ich einen „Git-Pull“ durchführen, ohne mein SSH-Passwort erneut einzugeben?

  2. TigerVNC + SSH ohne VNC-Passwort?

  3. SSH-Login funktioniert nicht mit Schlüssel Ohne Passwort?

  4. Wie zwinge ich einen Benutzer, ein Passwort bei der ersten Anmeldung mit ssh zu ändern?

  5. So führen Sie den ssh-Befehl einen sudo-Befehl ohne Passwort aus der Ferne aus

Wie richte ich eine passwortlose SSH-Anmeldung mit ssh-keygen ein?

So führen Sie eine Remote-Linux-Sicherung mit SSH durch

Passwortloser SSH-Login in 3 einfachen Schritten

Führen Sie SSH und SCP ohne Passworteingabe auf openSSH aus

So führen Sie SSH und SCP ohne Passwort von SSH2 zu OpenSSH durch

So richten Sie Rsync mit SSH unter UNIX / Linux ein (rsync ohne Passwort)