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 ბაშ სესიაში სერვერზე.
    # ცვლადის შემოწმება
    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 პორტი ბლოკირებულია ქსელში, სცადეთ სხვა პორტი, თუ ის კონფიგურირებულია სერვერზე. ან გამოიყენეთ სხვა წვდომის პროტოკოლი (მაგ., კონსოლი).