schützen Sie die known_host-Datei vor dem Schreiben - gute oder schlechte Idee?

306
maihabunash

Ich möchte die known_host-Datei vor dem Schreiben schützen. Daher möchte ich die folgenden Schritte auf meinem Linux-Red-Hat-Server ausführen

Cp /dev/null /root/.ssh/known_hosts chattr +i /root/.ssh/known_hosts 

Ich möchte, dass das, weil ich die erfolglose Anmeldung an einem Zielcomputer verhindern möchte und dass wir manchmal die Warnung erhalten - der Remote Host Identification Changed- Fehler und das Login fehlgeschlagen ist

Ich bin mir jedoch nicht sicher, ob meine Lösung (Schreibschutz auf known_host) eine gute Idee ist und was sich auf das Linux-System negativ auswirkt.

Oder ist diese Lösung vielleicht eine gute Lösung, um die known_host- Datei leer zu halten ?

Woran denken die Mitglieder hier?

1

1 Antwort auf die Frage

1
Hastur

IMHO Es ist keine gute Idee (siehe unten).

Der folgende Befehl entfernt den anstößigen Schlüssel Ihres Hosts aus den known_hosts

 ssh-keygen -R <host> 

z.B ssh-keygen -R my_old_client

Warum dies keine gute Idee ist, kann argumentiert werden man ssh(beim Suchen nach unten können Sie lesen):

Darüber hinaus muss der Server in der Lage sein, den Host-Schlüssel des Clients zu überprüfen (siehe Beschreibung von / etc / ssh / ssh_known_hosts und ~ / .ssh / known_hosts weiter unten), damit die Anmeldung zulässig ist . Diese Authentifizierungsmethode schließt Sicherheitslücken aufgrund von IP-Spoofing, DNS-Spoofing und Routing-Spoofing. [Hinweis für den Administrator: /etc/hosts.equiv, ~ / .rhosts und das Protokoll rlogin / rsh im Allgemeinen sind von Natur aus unsicher und sollten deaktiviert werden, wenn Sicherheit gewünscht wird.]


Einige Worte mehr: Wenn sshSie gefragt werden, dass der Computerschlüssel geändert wird, ist dies normalerweise darauf zurückzuführen, dass Sie SSH auf diesem Computer neu installiert haben oder möglicherweise eine Neuerstellung der Schlüssel erzwungen haben. Es ist jedoch nicht mehr der ssh-Schlüssel, der beim letzten Mal verwendet wurde ... Es kann ein anderer Computer sein, der versucht, diese Identität zu übernehmen. Wenn Sie sicher sind, dass es sich um denselben Computer handelt, können Sie den fehlerhaften Schlüssel entfernen / aktualisieren und fortfahren.

Immer von man sshungefähr wie funktioniert es:

ssh pflegt und überprüft automatisch eine Datenbank, die die Identifikation aller Hosts enthält, mit denen sie jemals verwendet wurde.
Host-Schlüssel werden im Home-Verzeichnis des Benutzers in ~ / .ssh / known_hosts gespeichert. Zusätzlich wird die Datei /etc/ssh/ssh_known_hostsautomatisch auf bekannte Hosts geprüft. Alle neuen Hosts werden automatisch zur Benutzerdatei hinzugefügt. Wenn sich die Identifikation eines Hosts ändert, warnt ssh dies und deaktiviert die Kennwortauthentifizierung, um Server-Spoofing oder Man-in-the-Middle-Angriffe zu verhindern, die ansonsten zur Umgehung der Verschlüsselung verwendet werden könnten.

Mit der Option StrictHostKeyChecking können Anmeldungen an Maschinen gesteuert werden, deren Hostschlüssel nicht bekannt ist oder sich geändert hat.

von man ss sehe ich nicht, dass sie known_host geschrieben haben maihabunash vor 9 Jahren 0
ist es besser, StrictHostKeyChecking nein in ssh config zu machen? maihabunash vor 9 Jahren 0
Normalerweise installieren Benutzer das `ssh'-Schlüssel nicht so oft neu. Wenn Sie das Problem einmal korrigieren, werden Sie (zumindest für längere Zeit) nicht mehr vor diesem Problem stehen und die Sicherheit nicht beeinträchtigen. Antwort aktualisiert Hastur vor 9 Jahren 0
StrictHostKeyChecking no und UserKnownHostsFile / dev / null erledigen den Job. Was denken Sie? Mit dieser Konfiguration bleibt die Datei leer maihabunash vor 9 Jahren 0