So deaktivieren Sie die SSH-Hostschlüsselprüfung unter Linux
In diesem Artikel erfahren Sie, wie Sie die Überprüfung des SSH-Hostschlüssels auf einem Linux-Computer deaktivieren – Ubuntu/Debian/CentOS/Fedora/Arch und jedem anderen System, auf dem Linux ausgeführt wird. Bei der SSH-Hostschlüsselüberprüfung überprüft SSH eine Datenbank mit der Identifikation aller Hosts, auf die jemals zugegriffen wurde. Die Hostschlüssel werden in der Datei ~/.ssh/known_hosts
verwaltet, die sich im Home-Verzeichnis des Benutzers befindet.
$ ls -1 ~/.ssh/
authorized_keys
config
id_rsa
id_rsa.pub
known_hosts
Wenn sich die Identifikation eines Hosts geändert hat, warnt der SSH-Client darüber und deaktiviert die Passwortauthentifizierung, um sicherzustellen, dass keine Man-in-the-Middle-Angriffe oder Server-Spoofing stattfinden können.
Das zur Steuerung dieser Einstellung verwendete Argument ist StrictHostKeyChecking. Es gibt drei mögliche Werte:
- ja: Wenn auf „ja“ gesetzt, fügt ssh der Datei
~/.ssh/known_hosts
niemals automatisch Hostschlüssel hinzu und lehnt dies ab Stellen Sie eine Verbindung zu einem Host her, dessen Hostschlüssel sich geändert hat. - no: Wenn auf „no“ gesetzt, fügt ssh automatisch neue Host-Schlüssel zu den vom Benutzer bekannten Hosts-Dateien hinzu.
- ask: Wenn auf „ask“ eingestellt (Standard), werden neue Hostschlüssel den bekannten Hostdateien des Benutzers erst hinzugefügt, nachdem der Benutzer die Aktion bestätigt hat und ssh dies ablehnt um eine Verbindung zu Hosts herzustellen, deren Hostschlüssel sich geändert hat.
Um die SSH-Hostschlüsselprüfung unter Linux zu deaktivieren, muss der Wert auf no und UserKnownHostsFile auf die Umleitung nach /dev/null gesetzt werden.
Generieren Sie SSH-Schlüssel, falls Sie diese noch nicht haben. Das Festlegen einer Passphrase ist optional.
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/debian/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): <optional>
Enter same passphrase again: <optional>
Your identification has been saved in /home/debian/.ssh/id_rsa.
Your public key has been saved in /home/debian/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/2A71cIaTTuuDJ6C2gatFk5/6WAq3JyLCfppkAfdQzM debian@deb10
The key's randomart image is:
+---[RSA 2048]----+
| |
| E |
| . o o |
|. . o . |
| o . . S + o |
|o = . .. B . |
|o=o=+. .. += o |
|+.BO+.+. =o+. |
|.B=+oo..o +o. |
+----[SHA256]-----+
Das SSH-Verzeichnis für Ihren lokalen Benutzer ist ~/.ssh
$ ls -1 ~/.ssh
authorized_keys
id_rsa
id_rsa.pub
Stellen Sie sicher, dass die Dateien über die richtigen Berechtigungen verfügen.
for file in authorized_keys id_rsa; do
chmod 0400 ~/.ssh/${file}
done
Erstellen Sie eine lokale SSH-Konfigurationsdatei.
touch ~/.ssh/config
Fügen Sie der erstellten Konfigurationsdatei die folgenden Einstellungen hinzu.
cat << EOF > ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
EOF
Legen Sie den korrekten Besitz für die Datei fest.
chmod 0400 ~/.ssh/config
Sie sollten sich ohne Überprüfung des SSH-Hostschlüssels anmelden können.
$ ssh [email
Warning: Permanently added '10.1.1.11' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/centos/.ssh/id_rsa':
...
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Sep 17 17:35:34 2019 from 10.1.1.10
debian@deb:~$
Mehr zu ssh.
- Ändern Sie den SSH-Port unter CentOS/RHEL 7/8 und Fedora mit SELinux
- So deaktivieren Sie SSH-Reverse-DNS-Lookups im Linux-/Unix-System
- So richten Sie die Zwei-Faktor-Authentifizierung (2FA) für SSH unter CentOS/RHEL ein
- Einfache Möglichkeit, SSH-Tunnel auf der Linux-CLI zu erstellen
- So ändern oder aktualisieren Sie die Passphrase des SSH-Schlüssels unter Linux/Unix