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