Junior
Co zrobić, gdy połączenie SSH się zawiesza?
sobes.tech AI
Odpowiedź od AI
- Sprawdzić połączenie sieciowe: Upewnić się, że nie ma problemów z połączeniem internetowym lub siecią lokalną. Ping do serwera.
- Sprawdzić obciążenie serwera: Serwer może być przeciążony (CPU, RAM, I/O). Użyj narzędzi monitorujących lub spróbuj uzyskać dostęp przez konsolę hyperwizora/dostawcy.
- Zrestartować usługę SSH: Po stronie serwera, jeśli masz dostęp innymi środkami (konsola, inny serwer SSH).
# dla systemów opartych na systemd sudo systemctl restart sshd.service # dla systemów opartych na SysV init sudo service ssh restart - Sprawdzić ustawienia serwera SSH: Plik
/etc/ssh/sshd_config, zwróć uwagę na parametryClientAliveIntervaliClientAliveCountMax.
Po zmianie ustawień, zrestartuj usługę SSH.# /etc/ssh/sshd_config ClientAliveInterval 60 # wysyła wiadomość co 60 sekund ClientAliveCountMax 3 # pozwala na 3 nieodebrane wiadomości - Sprawdzić ustawienia klienta SSH: Plik
~/.ssh/configlub opcje wiersza poleceń (-o). ParametryServerAliveIntervaliServerAliveCountMax.
Lub podczas łączenia:# ~/.ssh/config Host twoj_alias_serwera Hostname twoj_adres_ip_lub_nazwa_hosta ServerAliveInterval 60 ServerAliveCountMax 3ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 uzytkownik@twoj_adres_ip_lub_nazwa_hosta - Sprawdzić zapory sieciowe: Upewnić się, że zapory (lokalne na kliencie, serwerze, sieciowe) nie blokują lub nie przerywają połączenia na porcie 22 (lub innym używanym porcie SSH).
- Sprawdzić TMOUT/IDLE-Timeouts: Niektóre terminale lub środowiska mają własne ustawienia czasu bezczynności, które mogą powodować rozłączenie. Sprawdzić zmienną
TMOUTw sesji bash na serwerze.To tymczasowe rozwiązanie dla bieżącej sesji. Aby wprowadzić trwałe zmiany, edytować pliki# sprawdzić zmienną echo $TMOUT # ustawić wartość (np. 3600 sekund) export TMOUT=3600.bashrc,.profileitp. - Użyj opcji
-vdo debugowania: Szczegółowe wyświetlenie procesu łączenia SSH.ssh -v uzytkownik@twoj_adres_ip_lub_nazwa_hosta - Sprawdzić logi SSH: Po stronie serwera
/var/log/auth.loglub/var/log/secure(w zależności od systemu).# wyświetlić ostatnie wpisy w logu uwierzytelniania sudo tail /var/log/auth.log - Użyj alternatywnego portu lub protokołu: Jeśli standardowy port 22 jest blokowany gdzieś w sieci, spróbuj użyć innego portu, jeśli jest skonfigurowany na serwerze. Lub użyj innego protokołu dostępu (np. konsoli).