Як усунути помилку "Відмовлено у з'єднанні" на 22-му порту Linux

Як усунути помилку "Відмовлено у з'єднанні" на 22-му порту Linux

10.05.2024
Автор: HostZealot Team
2 мін.
123

Адміністрування сервера в системі Linux не завжди є бездоганним процесом, час від часу можуть виникати певні проблеми та помилки. Тут ми поділимося нашим практичним досвідом щодо помилки "відмовлено у з'єднанні". Коли виникає така проблема, це означає, що з'єднання по протоколу SSH не може бути здійснено, і вам краще дотримуватися деяких професійних рекомендацій, щоб вирішити цю проблему за допомогою методичного підходу.

Оцінка підключення клієнта

Щоб почати вирішувати цю проблему, необхідно провести тестування на стороні клієнта. Для цього ми детально розповімо про використання telnet та ping.

Тест доступності сервера за допомогою Ping

Перше, що можна зробити для тестування, це використати ping і IP або ім'я хоста, щоб визначити, чи можна достукатися до сервера. Ось як це можна зробити:

$ ping 11.321.44.2

Якщо сервер доступний, ви отримаєте додаткову інформацію, а також статистику пінгу. Однак, у випадку відсутності відповіді на цю команду, це не гарантує на 100%, що сервер недоступний.

Перевірка доступності порту за допомогою Telnet

Ще одним чудовим варіантом є перевірка доступності порту за допомогою команди telnet, яка використовує текстове з'єднання. Отже, давайте скористаємося наступною командою для перевірки стандартного SSH-порту:

$ telnet 11.321.44.2 22

Якщо з'єднання успішно встановлено, то ви побачите інформацію про операційну систему і програмне забезпечення SSH-сервера. Якщо спроба не вдалася і ви не отримали цих даних, це не означає, що сервер недоступний.

Перевірка конфігурації SSH-сервера

Тепер давайте перевіримо, чи правильно функціонує порт SSH, переглянувши конфігурацію сервера за допомогою:

$ grep Port /etc/ssh/sshd_config
Port 2222

Тут ми не використовуємо порт 22 за замовчуванням. Тоді використовуйте наступний рядок:

$ ssh -p 2222 user_name@ourserverip

Цей порт можна легко змінити на порт за замовчуванням за допомогою кнопки :

$ grep Port /etc/ssh/sshd_config
Port 22

Після цього вам залишиться лише перезапустити систему за допомогою systemctl. Після цього можна буде підключитися через порт за замовчуванням:

$ sudo systemctl restart sshd

Перевірка стану служби SSH

Наступним кроком у нашій процедурі буде перевірка служби SSH і перегляд статусу встановлення.

Перевірка стану служби SSH

Перевірка стану дуже проста і повинна містити наступний рядок:

$ systemctl status ssh

Виведення в цей рядок має містити всі деталі про дані процесу, поточний стан, події журналу, а також конфігурацію. Якщо ви не маєте такого детального виводу і сервер не запущено, ви можете скористатися наступною командою:

$ sudo systemctl start sshd

На додаток до цього, може знадобитися також увімкнути службу SSH:

$ sudo systemctl enable sshd

В кінці слід виконати перезавантаження, і ви можете спробувати перевірити стан ще раз.

Налаштування та перевірка брандмауера

Ще одне пояснення цієї помилки може бути пов'язане з блокуванням брандмауера. Тому нам потрібно вказати інструмент, який контролює наш доступ до системи.

Використання брандмауера ufw

Щоб перевірити, чи немає блокування SSH-трафіку, скористайтеся наступною командою:

$ sudo ufw status

Переглянувши висновок, ви побачите, чи дозволений трафік і звідки. Якщо ви не можете побачити цю інформацію, то спробуйте спочатку відкрити порт за замовчуванням за допомогою:

$ sudo ufw allow 22

Потім зробіть перезавантаження і спробуйте ще раз:

$ sudo ufw reload

Налаштування брандмауера iptables

Наступним кроком у цьому процесі буде перегляд правил iptables:

$ sudo iptables -n -L | grep 22

За допомогою цієї команди ви можете перевірити правила, які дозволяють певний трафік на порту 22. Якщо у вас немає вхідного трафіку у виведенні, ви можете змінити це за допомогою:

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Тепер давайте пояснимо вищезгаданий рядок, щоб ви краще розуміли процес:

  • 22 - ця частина визначає порт.
  • -p tcp - тут ми вказуємо потрібний протокол, в даному випадку це TCP.
  • -j ACCEPT - означає, що трафік, який відповідає цьому правилу, має бути прийнятий.

Наступним кроком буде встановлення iptables-persistent, це потрібно зробити для того, щоб вони зберігалися після перезавантаження:

$ sudo apt-get install iptables-persistent

Під час процесу вам буде запропоновано зберегти поточні правила.

firewalld Налаштування брандмауера

Ми скористаємося наступною командою, щоб перевірити, чи відкритий SSH-порт, це слід зробити у випадку, якщо firewalld працює у Linux:

$ sudo firewall-cmd --list-ports

Може виникнути ситуація, коли цього порту немає в списку, тому ви можете дозволити його за допомогою цього рядка:

$ sudo firewall-cmd --permanent --add-port=22/tcp

За допомогою цієї команди ви додасте порт 22 до постійної конфігурації. Після виконання цього кроку зробіть перезавантаження:

$ sudo firewall-cmd --reload

Керування хостами по SSH

Тепер давайте спробуємо розібратися з проблемами, які можуть бути пов'язані з ключами хостів. Ми можемо впоратися з цим, очистивши файл:

$ cp ~/.ssh/known_hosts ~/.ssh/known_hosts.bak && echo > ~/.ssh/known_hosts

Вивчення логів SSH

Ще один метод, який ми можемо використати для виправлення помилки - це перевірка логів SSH на наявність можливих проблем. Для перевірки останніх логів використовуйте tail і -f для перегляду нових записів:

$ tail -f /var/log/auth.log

Ви також можете спробувати /var/log/secure, якщо місце у прикладі команди не спрацювало. Це 2 типових варіанти, але у вас також є ще один варіант.

Аналіз проблем з SSH

Якщо жоден з наведених вище варіантів не спрацював у вашому випадку, ми можемо запропонувати ще один:

$ ssh -v asr@177.155.233.156

Висновок допоможе вам визначити проблеми з підключенням по SSH.

Висновок

У цій статті ми поділилися з вами деякими практичними рекомендаціями щодо усунення помилки SSH в системі Linux. Ми постаралися включити всі найпоширеніші стратегії щодо проблем з підключенням. Почніть з перевірки конфігурації SSH, потім перевірте налаштування брандмауера, і, звичайно, ви також можете скористатися аналізом проблем SSH. Дотримуючись найпростішої процедури, ви отримаєте безпечне SSH-з'єднання у вашій операційній системі (в нашому випадку Linux).

# Як зробити Поділитися:
Статті за темою