Wie gehe ich mit der Überprüfung des SSH-Hostschlüssels bei zwei verschiedenen Hosts unter derselben (aber sich ändernden) IP-Adresse um?[geschlossen]
-
06-09-2019 - |
Frage
Ich habe 2 SSH-Server hinter einer NAT-Firewall an einem Standort, der seine WAN-IP jeden Tag ändert.Sie haben zu einem bestimmten Zeitpunkt immer die gleiche WAN-IP-Adresse, jedoch an unterschiedlichen Ports.
Ich verbinde mich folgendermaßen mit Server A:
ssh -p 22001 karl@x1.example.com
und an Server B:
ssh -p 22002 karl@x2.example.com
Ich erhalte also zwei verschiedene Host-Schlüssel für dieselbe IP und außerdem, wenn sich die IP ändert, sogar eine andere IP für denselben Host.
Ich muss immer wieder den anderen Schlüssel oder den alten Schlüssel (im Falle einer IP-Änderung) in der Datei „known_hosts“ löschen.
Ich zögere, die Schlüsselüberprüfung auszuschalten, da dies weniger sicher wäre.Aber es ist auch unsicher, ständig eine Warnung zu bekommen (weil ich solche Warnungen dann ständig ignoriere).Gibt es eine bessere Lösung?
Das hängt mit meiner alten Frage hier zusammen, ist aber nicht dasselbe:
Warnmeldung zur SSH-Anmeldung auf einem Server mit 2 DNS-Namen
Lösung
Ich denke, das wird funktionieren:
Ein ... kreieren config
Datei in Ihrem .ssh
Verzeichnis wie folgt:
Host server1
Hostname x1.example.com
HostKeyAlias server1
CheckHostIP no
Port 22001
User karl
Host server2
Hostname x2.example.com
HostKeyAlias server2
CheckHostIP no
Port 22002
User karl
Erläuterung unten (von man ssh_config
)
CheckHostIP
Wenn dieses Flag auf "Ja" gesetzt ist, überprüft SSH (1) die Host -IP -Adresse in der Datei bekannt_hosts.Auf diese Weise kann SSH erkennen, ob sich ein Host -Schlüssel aufgrund von DNS -Spoofing geändert hat.Wenn die Option auf "Nein" eingestellt ist, wird der Scheck nicht ausgeführt.Der Standard ist "Ja".
HostKeyAlias
Gibt einen Alias an, der anstelle des realen Hostnamens verwendet werden sollte, wenn Sie nachschlagen oder den Host -Schlüssel in den Host -Schlüsseldatenbankdateien speichern.Diese Option ist nützlich für Tunneling SSH -Verbindungen oder für mehrere Server, die auf einem einzelnen Host ausgeführt werden.
Der Username
Und Port
line vermeidet, dass Sie diese Optionen auch in der Befehlszeile angeben müssen, sodass Sie einfach Folgendes verwenden können:
% ssh server1
% ssh server2