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

So richten Sie eine passwortlose SSH-Anmeldung unter Linux ein

Hier ist ein kurzer Hinweis zur Konfiguration passwortloser Anmeldungen zwischen 2 Linux-Systemen. Der Prozess beinhaltet im Wesentlichen das Generieren eines öffentlichen Authentifizierungsschlüssels und das Anhängen an die Datei ~/.ssh/authorized_keys des entfernten Hosts.

Authentifizierungsschlüssel generieren

Wenn keine SSH-Authentifizierungsschlüsseldatei vorhanden ist, generieren Sie eine, indem Sie ssh-keygen ausführen Befehl. Wenn Sie zur Eingabe einer Passphrase aufgefordert werden, verwenden Sie eine leere Passphrase, wenn eine vollständig passwortlose Anmeldung erforderlich ist:

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
1e:b2:f4:89:5a:7f:2d:a5:a5:4d:6d:66:2c:82:d8:18 root@remote-host

Kopieren Sie den öffentlichen Schlüssel auf den Remote-Host

Verwenden Sie die ssh-copy-id Befehl, um die öffentliche Hälfte des neu generierten Authentifizierungsschlüssels im Home-Verzeichnis eines bestimmten Benutzers auf dem Remote-Host zu installieren. Der Befehl ssh-copy-id fügt dann automatisch die Identitätsinformationen in die ~/.ssh/authorized_keys ein Datei für den angegebenen Benutzer auf dem entfernten Host (Erstellen von ~/.ssh und ~/.ssh/authorized_keys, falls erforderlich).

# ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-host
user@remote-hosts's password:

Wenn der Server nicht mit openssh-clients (einem Paket, das das Befehlsdienstprogramm ssh-copy-id bereitstellt) installiert ist, können Sie den Authentifizierungsschlüssel alternativ mit folgendem Befehl kopieren:

# cat ~/.ssh/id_rsa.pub | ssh user@remote-host "cat >> ~/.ssh/authorized_keys"

Wenn alles richtig konfiguriert ist, sollten Sie sich ohne Passwort beim Remote-Host anmelden können.

Fehlerbehebung

Überprüfen Sie die korrekten Berechtigungen

Die häufigste Ursache für Probleme bei der Aktivierung der schlüsselbasierten SSH-Authentifizierung sind Dateiberechtigungen auf dem Remote-SSH-Server
Wenn die obigen Schritte befolgt wurden und beim Senden von SSH an den entsprechenden Benutzer immer noch zur Eingabe von Passwörtern aufgefordert wird, überprüfen Sie die Berechtigungen sowohl auf die Dateien des lokalen als auch des entfernten Benutzers . Die Berechtigungen der Verzeichnisse sollten genau wie unten gezeigt sein. Das hier gezeigte Beispiel gilt für den Benutzer „oracle“

drwx------. 25 oracle oinstall 4096 Aug 21 11:01 /home/oracle/
drwx------.  2 oracle oinstall 4096 Aug 17 13:13 /home/oracle/.ssh
-rw-------.  1 oracle oinstall  420 Aug 17 13:13 /home/oracle/.ssh/authorized_keys

Wenn die Berechtigungen nicht wie oben gezeigt sind, stellen Sie sie richtig ein :

# chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

Starten Sie den sshd-Dienst neu, damit die Änderungen wirksam werden:

# service sshd restart

SElinux deaktivieren

SELinux kann möglicherweise auch verhindern, dass sshd auf das Verzeichnis ~/.ssh auf dem Server zugreift. Dieses Problem kann ausgeschlossen (oder gelöst) werden, indem restorecon ausgeführt wird wie folgt im ~/.ssh-Verzeichnis des entfernten Benutzers:

# restorecon -Rv ~/.ssh


Linux
  1. So richten Sie passwortloses SSH unter Linux ein

  2. So richten Sie einen Reverse-SSH-Tunnel unter Linux ein

  3. Wie passwortloses SSH unter Linux / UNIX funktioniert

  4. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter CentOS/RHEL ein

  5. Wie richte ich passwortloses `sudo` unter Linux ein?

So richten Sie die passwortlose SSH-Anmeldung unter CentOS 8 / RHEL 8 ein

So erstellen Sie einen SSH-Alias ​​unter Linux

So richten Sie die Multi-Faktor-Authentifizierung für SSH unter Linux ein

So deaktivieren Sie die SSH-Anmeldung für einen bestimmten Benutzer in Linux

So richten Sie die passwortlose SSH-Anmeldung in Rocky Linux ein

So richten Sie die passwortlose SSH-Anmeldung in AlmaLinux ein