Sobes.tech
Junior

Ի՞նչ անել, եթե SSH կապը կախվում է։

sobes.tech AI

Պատասխան AI-ից

  1. Ստուգել ցանցային կապը: Համոզվեք, որ ինտերնետային կապում կամ տեղական ցանցում խնդիրներ չկան։ Պինգ դեպի սերվեր։
  2. Սերվերի բեռը ստուգել: Միգուցե սերվերը ծանրաբեռնված է (CPU, RAM, I/O): Օգտագործեք մոնիտորինգի գործիքներ կամ փորձեք մուտք գործել հիպервիզոր/պровայդերի կոնսոլի միջոցով:
  3. Վերագործարկեք SSH ծառայությունը: Սերվերի կողմում, եթե այլ միջոցներով հասանելիություն ունեք (կոնսոլ, այլ SSH սերվեր):
    # systemd հիման վրա համակարգերի համար
    sudo systemctl restart sshd.service
    
    # SysV init հիման վրա համակարգերի համար
    sudo service ssh restart
    
  4. Ստուգել SSH սերվերի կարգավորումները: Ֆայլ /etc/ssh/sshd_config, ուշադրություն դարձնել ClientAliveInterval և ClientAliveCountMax պարամետրերին:
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # ուղարկում է կենդանի հաղորդագրություն ամեն 60 վայրկյանին
    ClientAliveCountMax 3  # թույլ է տալիս 3 բացթող կենդանի հաղորդագրություն
    
    Փոփոխությունների հետո անհրաժեշտ է վերագործարկել SSH ծառայությունը:
  5. Ստուգել SSH հաճախորդի կարգավորումները: Ֆայլ ~/.ssh/config կամ հրամանի ընտրանքներ (-o): ServerAliveInterval և ServerAliveCountMax պարամետրերը:
    # ~/.ssh/config
    Host ձեր_սերվերի_անվանում
        Hostname ձեր_սերվերի_IP_կամ_հետևյալ
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    Կամ միանալիս:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@ձեր_սերվերի_IP_կամ_հետևյալ
    
  6. Ստուգել ֆայլերոլները: Համոզվեք, որ ֆայլերոլները (տեղական, սերվերի, ցանցային) չեն խոչընդոտում կամ ընդհատում կապը 22 պորտով (կամ այլ օգտագործվող SSH պորտով):
  7. Ստուգել TMOUT/IDLE ժամանակային սահմանափակումները: Որոշ տերմինալներ կամ միջավայրեր ունեն իրենց կարգավորումները անգործության ժամանակային սահմանափակումների համար, որոնք կարող են հանգեցնել կապի ընդհատման: Ստուգել TMOUT փոփոխականը bash սեսիայում սերվերում:
    # ստուգել փոփոխականը
    echo $TMOUT 
    
    # սահմանել արժեք (օրինակ, 3600 վայրկյան)
    export TMOUT=3600 
    
    Սա ժամանակավոր լուծում է ընթացիկ սեսիայի համար: Տևական փոփոխության համար խմբագրել .bashrc, .profile ֆայլերը:
  8. Օգտագործել -v ընտրանքը սխալների համար աուդիտավորման համար: SSH հաճախորդի գործընթացի մանրամասները:
    ssh -v user@ձեր_սերվերի_IP_կամ_հետևյալ
    
  9. Ստուգել SSH լոգերը: Սերվերի կողմում /var/log/auth.log կամ /var/log/secure (օպերացիոն համակարգից կախված):
    # նայեք վերջին գրառումները մուտքի լոգում
    sudo tail /var/log/auth.log
    
  10. Օգտագործել այլընտրանքային պորտ կամ պրոտոկոլ: Եթե ստանդարտ 22 պորտը խոչընդոտվում է ցանցում, փորձեք օգտագործել այլ պորտ, եթե այն կարգավորել է սերվերը: կամ օգտագործել այլ պրոտոկոլ մուտք գործելու համար (օրինակ, կոնսոլ):