Sobes.tech
Junior

Ką daryti, jei SSH ryšys užstringa?

sobes.tech AI

Atsakymas iš AI

  1. Tikrinti tinklo ryšį: Įsitikinkite, kad nėra problemų su interneto ryšiu ar vietine tinklo infrastruktūra. Pinging serverį.
  2. Patikrinti serverio apkrovą: Galbūt serveris yra perkrautas (CPU, RAM, I/O). Naudokite stebėjimo įrankius arba bandykite pasiekti per hipervizoriaus/proveiderio konsolę.
  3. Perkrauti SSH paslaugą: Serveryje, jei turite prieigą kitais būdais (konsolė, kitas SSH serveris).
    # systemd pagrįstoms sistemoms
    sudo systemctl restart sshd.service
    
    # SysV init pagrįstoms sistemoms
    sudo service ssh restart
    
  4. Patikrinti SSH serverio nustatymus: Failas /etc/ssh/sshd_config, atkreipkite dėmesį į parametrus ClientAliveInterval ir ClientAliveCountMax.
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # siųsti gyvą žinutę kas 60 sekundžių
    ClientAliveCountMax 3  # leisti 3 praleistas gyvas žinutes
    
    Po pakeitimų, reikia perkrauti SSH paslaugą.
  5. Patikrinti SSH kliento nustatymus: Failas ~/.ssh/config arba komandų parinktys (-o). Parametrai ServerAliveInterval ir ServerAliveCountMax.
    # ~/.ssh/config
    Host jūsų_server_alias
        Hostname jūsų_server_ip_arba_hostname
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    Arba jungiant:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@jūsų_server_ip_arba_hostname
    
  6. Patikrinti ugniasienes: Įsitikinkite, kad ugniasienės (vietinės kliento, serverio, tinklo) neblokuoja ar nesutrūkdo ryšio per 22 prievadą (ar kitą naudojamą SSH prievadą).
  7. Patikrinti TMOUT/IDLE timeoutus: Kai kurios terminalo ar aplinkos turi savo nustatymus neveikimo laiko limitams, kurie gali sukelti ryšio nutraukimą. Patikrinkite TMOUT kintamąjį bash sesijoje serveryje.
    # patikrinti kintamąjį
    echo $TMOUT 
    
    # nustatyti reikšmę (pvz., 3600 sekundžių)
    export TMOUT=3600 
    
    Tai laikinas sprendimas dabartinei sesijai. Nuolatiniai pakeitimai reikalauja redaguoti .bashrc, .profile ir pan.
  8. Naudoti -v parinktį klaidų diagnozei: SSH kliento proceso detalių išgavimui.
    ssh -v user@jūsų_server_ip_arba_hostname
    
  9. Patikrinti SSH žurnalus: Serveryje /var/log/auth.log arba /var/log/secure failuose.
    # peržiūrėti paskutinius įrašus autorizacijos žurnale
    sudo tail /var/log/auth.log
    
  10. Naudoti alternatyvų prievadą ar protokolą: Jei standartinis 22 prievadas yra blokuojamas tinkle, bandykite naudoti kitą prievadą, jei jis yra sukonfigūruotas serveryje. Arba naudokite kitą prieigos protokolą (pvz., konsolę).