Ich verwalte eine Netzwerkumgebung, in der sich die Benutzer über NIS authentifizieren. Bis auf einen können alle Computer zum SSH-Zugriff auf den Server verwendet werden. Auf der fraglichen Maschine erhalte ich die Nachricht
ssh: connect to host servername port 22: Connection refused
Ich habe die strace
Ausgaben des fraglichen Rechners mit denen eines Rechners verglichen, der den Server korrekt mit SSH versorgen kann.
Es stellt sich heraus, dass der Computer, der kein SSH ausführen kann, nicht in den Server eingeht, /etc/hosts
während der Computer, der kein SSH ausführen kann , dies korrekt ausführt. Beide Rechner haben /etc/hosts
sich mit dem Servernamen und der IP eingerichtet. Am Ende versucht der Computer, der nicht konsultiert /etc/hosts
, eine Verbindung zu 127.0.0.1
(localhost) herzustellen, und schlägt mit der obigen Meldung fehl. Was kann das verursachen?
Zusätzliche Information:
- Der Server, in den ich SSH ausführen möchte, fungiert auch als Nameserver, und beide Computer konsultieren ihn, während sie versuchen, SSH auszuführen.
- Der Computer, auf dem kein SSH-Zugriff auf den Server möglich ist, kann bei Bedarf auch auf andere Computer zugreifen.
ssh machinename
Diestrace
Protokolle zeigen, dass der Computer den Nameserver konsultiert (diesmal erfolgreich) und den Namen des Remotecomputers korrekt auflöst und eine Verbindung herstellt.
EDIT: Ich werde Ihnen gerne zusätzliche Informationen zur Verfügung stellen, von denen Sie glauben, dass sie zur Lösung dieses Problems beitragen könnten.
Antworten:
Es hört sich für mich so an, als hätte der problematische Host keinen richtig konfigurierten
nsswitch.conf
.Die
hosts
Zeile von/etc/nsswitch.conf
sollte ungefähr so aussehen:Der genaue Inhalt hängt jedoch von Ihrer Umgebung ab. Sie sollten sich mit funktionierenden Hosts vergleichen und entsprechende Änderungen vornehmen.
quelle