Website-Suche

So akzeptieren Sie SSH-Hostschlüssel automatisch unter Linux


Wenn Sie zum ersten Mal eine Verbindung zu einem SSH-Server herstellen, wird Ihnen ein Fingerabdruck und ein Hash des vollständigen Hostschlüssels angezeigt und Sie werden aufgefordert, dessen Gültigkeit zu bestätigen und den Hostschlüssel zu akzeptieren. Nach der Bestätigung wird der Hostschlüssel zur Datei ~/.ssh/known_hosts hinzugefügt. In einer kontrollierten Umgebung, in der die Authentizität von SSH-Hosts bereits bekannt ist (z. B. lokale VMs), möchten Sie möglicherweise einen neuen Hostschlüssel automatisch und ohne Prüfung akzeptieren. Dies ist nützlich, wenn Sie ssh/scp in einem nicht interaktiven Stapelverarbeitungsskript verwenden.

In diesem Beitrag beschreibe ich, wie man SSH-Hostschlüssel unter Linux automatisch akzeptiert.

Mit dem Befehl ssh können Sie die Befehlszeilenoption -oStrictHostKeyChecking=[yes|no] verwenden, um die Überprüfung des SSH-Hostschlüssels zu aktivieren oder zu deaktivieren. Führen Sie Folgendes aus, um eine SSH-Verbindung ohne strenge Überprüfung des Hostschlüssels herzustellen.


$ ssh -oStrictHostKeyChecking=no [email _host

In diesem Fall werden Sie nicht aufgefordert, einen Hostschlüssel zu akzeptieren. Beachten Sie, dass möglicherweise immer noch die folgende Warnmeldung angezeigt wird, wenn der Hostschlüssel nicht mit einem zuvor hinzugefügten Hostschlüssel desselben Hosts übereinstimmt.


WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

Wenn Sie keine solche Warnung wünschen, können Sie die Option -oUserKnownHostsFile=/dev/null verwenden, die dafür sorgt, dass ssh ~/.ssh/known_hosts nicht verwendet und lässt so solche Warnungen verschwinden.


$ ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null [email _host

Wenn Sie die strikte Überprüfung des Hostschlüssels dauerhaft in SSH deaktivieren möchten, können Sie eine SSH-Konfigurationsdatei verwenden (d. h. ~/.ssh/config oder /etc/ ssh/ssh_config). In diesem Fall können Sie die Überprüfung des SSH-Hostschlüssels für bestimmte Hosts selektiv deaktivieren. Fügen Sie beispielsweise Folgendes zu ~/.ssh/config oder /etc/ssh/ssh_config hinzu.

So deaktivieren Sie die Überprüfung des Hostschlüssels für einen bestimmten Host (z. B. remote_host.com):


Host remote_host.com
    StrictHostKeyChecking no

So deaktivieren Sie die Hostschlüsselprüfung für alle Hosts, mit denen Sie eine Verbindung herstellen:


Host *
    StrictHostKeyChecking no

Um die Überprüfung des Hostschlüssels zu vermeiden und die Datei „known_hosts“ nicht für das Subnetz 192.168.1.* zu verwenden:


Host 192.168.0.*
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

Verwandte Artikel: