Potřeboval bych nasměrovat ke způsobům, jak tohle vůbec začít debugovat.
Po startu systému je všechno normální, SSH funguje jak má, spravuju systémy několika firmám. Po nějakých akcích se ale něco stane a od té doby nemůžu z toho počítače navázat SSH spojení kamkoliv. Mezi ty akce patří:
- nahození a shození Wireguard tunelu (obvyklě několikrát po sobě)
- přenesení několika desítek GB přes rsync+ssh
SSH klient skončí timeoutem vždy tady:
ssh -vvv example.cz
OpenSSH_9.5p1, OpenSSL 3.1.4 24 Oct 2023
debug1: Reading configuration data (...)
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug2: resolving "example.cz" port 22
debug3: resolve_host: lookup example.cz:22
debug3: ssh_connect_direct: entering
debug1: Connecting to example.cz [47.555.1.1] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
Podle `strace` to skutečně stojí na connect() volání.
Co zatím vím:
Není to per-user. Problém můžu vyvolat jedním uživatelem, ale ochromí to ssh celé mašině (i rootovi).
Není to na úrovni TCP. Spojení s SSH serverem se naváže bez problémů a okamžitě:
$ nc -v example.cz 22
Connection to example.cz (47.555.1.1) 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_9.4
Není to nic v síti nebo u ISP. Když přestane SSH fungovat, můžu laptop sbalit a odvézt jinam, a ani tam mi to fungovat nebude.
Nebude to regrese v OpenSSH. Stejně to dělá ve verzích 9.3, 9.4, 9.5.
Asi to nesouvisí s Wireguardem. Zkompiloval jsem si kernel bez něj, a děje se to taky.
Firewall mám, ale nepoužívám:
# iptables-save
# Generated by iptables-save v1.8.10 on Sat Dec 9 16:23:42 2023
*filter
:INPUT ACCEPT [339349:459048520]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [55068:6356188]
COMMIT
# Completed on Sat Dec 9 16:23:42 2023