Как отлаживать соединения SSH

How Debug Ssh Connections



В этом руководстве будут рассмотрены некоторые быстрые методы и приемы, которые вы можете использовать для диагностики различных соединений SSH, в том числе когда вы не можете подключиться к SSH, ошибки аутентификации и т. Д.

ЗАМЕТКА: Прежде чем начать, убедитесь, что устройство, к которому вы хотите подключиться, находится в сети и ошибка не является результатом недоступности устройства.







Проблема 1: служба SSH не работает

Распространенной причиной ошибок соединения SSH является служба, не работающая на удаленном хосте. Это может быть из-за случайного отключения службы или из-за того, что служба не запускается после перезагрузки системы.



Чтобы проверить, запущена ли служба SSH, используйте системный менеджер с помощью команды:



судоsystemctl status sshd

Приведенная выше команда должна сообщать, запущена служба или нет, как показано на снимках экрана ниже.







Решение

Чтобы решить проблемы SSH, вызванные неработающей службой, используйте систему для запуска службы. Если служба отвечает ошибками, проверьте журналы и исправьте проблемы, указанные в журнале.

Используйте команду ниже, чтобы проверить журналы обслуживания.

рукоятка 'sshd' /куда/бревно/auth.log

Используйте команду ниже, чтобы запустить или остановить службу SSH с помощью systemd.

судоsystemctl start sshd

Проблема 2: SSH на нестандартном порте

Вторая распространенная проблема при отладке SSH-соединений - использование нестандартного порта. Если SSH работает на другом порту, отличном от порта по умолчанию 22, вы не подключитесь к удаленному хосту, если явно не укажете порт, на котором работает SSH.

Чтобы просмотреть порт, на котором работает SSH, используйте такой инструмент, как netstat, как показано ниже:

[сотни@centos8 ~]$судо netstat -ptln | рукоятка ssh
TCP0 00.0.0.0:560.0.0.0:*СЛУШАТЬ1131/sshd
tcp60 0:::56:::*СЛУШАТЬ1131/sshd

Приведенный выше вывод показывает, на каком порту работает служба SSH. В данном случае это 56 порт.

Решение

Чтобы решить эту проблему, вы можете использовать информацию из netstat, чтобы явно указать порт в вашей команде ssh как:

sshимя пользователя@ip -п 56

Проблема 3: другая служба, использующая тот же порт

Другая причина ошибок соединения SSH - если другая служба или процесс также использует тот же порт, что и служба SSH. Например, если SSH явно указан для работы на порту 80 (ужасная идея), такая служба, как Apache, может использовать тот же порт.

Чтобы узнать, использует ли другой процесс тот же порт, что и SSH, проверьте журналы с помощью команды:

судоjournalctl-tsshd

Эта команда должна возвращать ошибку, подобную показанной ниже, указывая, использует ли другой процесс связанный с SSH порт.

sshd[110611]: error: привязать к порту80на 0.0.0.0 не удалось: адрес ужевиспользовать

Хорошо убедиться, что ошибка привязки порта вызвана другой службой, а не мерами безопасности, такими как SELinux.

Решение

Есть несколько способов решить эту проблему. Это включает:

Первый - привязать службу SSH к другому порту. Вы можете сделать это, отредактировав файл конфигурации SSH. Например, измените запись порта на порт 3009, как показано в командах:

судо нано /так далее/ssh/sshd_config
Порт3009

Другой метод, который вы можете использовать для решения этой проблемы, - это остановить службу, используя порт SSH. Например, остановите службу apache, используя порт 80 как:

судоsystemctl остановить httpd
судоsystemctl отключить httpd

Проблема 4: Брандмауэр

Если вы попробовали все вышеперечисленные методы, но SSH-соединение по-прежнему отсутствует, вы можете перейти к следующей возможной причине проблемы: ограничения брандмауэра. В зависимости от используемого вами метода брандмауэра (UFW или Iptables) вам необходимо убедиться, что брандмауэр разрешает SSH-соединения.

Решение

Правила брандмауэра широки и могут различаться в зависимости от конфигурации системы. Таким образом, я не могу охватить все аспекты. Однако следующее является простым решением для обеспечения того, чтобы служба SSH была разрешена на брандмауэре UFW.

судоufw разрешить<ssh_port> /TCP

Вы также можете сбросить все правила UFW и начать заново. Это позволит вам устранять неполадки подключения брандмауэра с нуля.

судосброс ufw

Проблема 5: отключенные парольные входы

Иногда вы можете настроить SSH так, чтобы он не принимал входы по паролю и использовал только аутентификацию с открытым ключом. Это может вызвать проблему, если открытый ключ недоступен на сервере или отсутствует ваша пара закрытых ключей.

Чтобы проверить, разрешен ли вход по паролю, введите конфигурацию ssh как:

[сотни@centos8]$судо рукояткаПарольАутентификация/так далее/ssh/sshd_config
#PasswordAuthentication да
ПарольАутентификацияда
# PasswordAuthentication. В зависимости от вашей конфигурации PAM,
# PAM-аутентификация, затем включите это, но установите PasswordAuthentication

Приведенный выше вывод показывает, что вход по паролю разрешен.

Решение

Чтобы решить указанную выше проблему, вы можете использовать два метода:

Во-первых, если у вас установлено значение no, измените значение PasswordAuthentication на yes и перезапустите службу ssh.

Другой метод - создать пару ключ-значение ssh и использовать ее для входа на сервер. Чтобы узнать, как создать пару ключ-значение ssh, используйте следующее руководство.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Заключение

В этом кратком руководстве мы обсудили основные причины ошибок соединения SSH и способы их устранения. Хотя в этом руководстве рассматриваются общие проблемы, вы можете найти ошибки, характерные для вашей системы, в зависимости от конфигурации и разрешений.