Falls es bei einem Versuch eine SSH-Verbindung aufzubauen zu Fehlern kommen sollte, gibt es verschiedene Möglichkeiten zur Analyse. Einerseits kann der SSH-Client mit dem Parameter -v gestartet werden. Die Angabe von -vvv erhöht die Debug-Ausgabe.
Serverseitig besteht die Möglichkeit, eine weitere sshd Instanz zu starten. Dabei bietet sich die Nutzung eines alternativen Ports an, damit bestehende SSH-Verbindungen nicht beeinflusst werden. Zuvor sollte allerdings sichergestellt werden, dass ein Zugriff über den gewählten Port in einer aktiven Firewall gestattet wird.
Daraufhin kann auf der Serverseite der SSH Daemon im interaktiven Debug Modus gestartet werden, mithilfe von tee wird die Ausgabe darüber hinaus in eine Datei im lokalen Verzeichnis umgeleitet:
/usr/sbin/sshd -ddd -D -p 222 2>&1 | awk '{ print strftime("%D %T: "), $0; fflush(); }' | tee sshd_debug.log
Auf Clientseite kann die Verbindung wie folgt aufgebaut werden:
ssh -p 222 $ZIELSYSTEM
Alternativ kann die folgende Option zur sshd Konfiguration hinzugefügt werden:
vi /etc/ssh/sshd_config
LogLevel DEBUG3
Damit diese aktiviert wird, muss der Dienst neu gestartet werden, was Auswirkungen auf bereits bestehende aktive SSH-Verbindungen haben kann:
systemctl restart sshd
Logo: Jessie Kirk, CC BY 4.0, via Wikimedia Commons
Vielen Dank für die Informationen. Kannte ich zwar schon, aber das können bestimmt einige brauchen. Laut man page (sshd) kann man auch beim Start von sshd eine Konfigurationsdatei angeben (Option: -f). Damit kann man die normale Konfiguration kopieren, den anderen Port und den Debuglevel anpassen und muss die Konfigurationsdatei für den Standard-Dienst nicht ändern und daher den Dienst sshd nicht neu starten. Das ist sowieso nicht nötig, wenn man den sshd mit einem anderen Port manuell (als root) startet.