Вопрос или проблема
Окружение
- сервер ОС: Ubuntu 20.04(x86_64)
- сервер SSH: OpenSSH_8.2p1 Ubuntu-4ubuntu0.8, OpenSSL 1.1.1f 31 Мар 2020
Опишите проблему
Пинг сервера всегда в порядке и стабилен.
--- статистика пинга ---
2607 пакетов передано, 2607 получено, 0% потеря пакетов, время 2668547мс
время отклика min/avg/max/mdev = 0.056/0.104/0.580/0.027 мс
Нагрузка сервера очень низкая.
Но часто не удается установить новое SSH-соединение с сервером, оно длится от одной минуты до десятков минут.
Но ранее установленное SSH-соединение может работать нормально, кроме случаев, когда используются связанные с SSH службы, такие как команда sudo.
С этой проблемой сталкиваются 3 сервера, один из которых имеет более частую проблему и может быть недоступен до десяти минут, в то время как у остальных двух проблема наблюдается реже и они, как правило, недоступны от 1 до 3 минут.
Эта проблема возникает нерегулярно и часто.
Используя journalctl -u ssh
, пытаюсь проверить SSH-журнал, но до сих пор не нашел причины:
16 Окт 16:15:33 user1-SERVER sshd[1806]: debug1: Forked child 3215566.
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: Set /proc/self/oom_score_adj to 0
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: inetd sockets after dupping: 4, 4
16 Окт 16:15:33 user1-SERVER sshd[3215566]: Подключение от 10.8.238.253 порт 65243 на 10.9.74.101 порт 22 rdomain ""
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.8
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: Remote protocol version 2.0, remote software version libssh_0.9.6
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: no match: libssh_0.9.6
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: permanently_set_uid: 127/65534 [preauth]
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
16 Окт 16:15:33 user1-SERVER sshd[3215566]: debug1: SSH2_MSG_KEXINIT sent [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: SSH2_MSG_KEXINIT received [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: kex: algorithm: curve25519-sha256 [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: kex: host key algorithm: ssh-ed25519 [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: rekey out after 4294967296 blocks [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: Sending SSH2_MSG_EXT_INFO [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: SSH2_MSG_NEWKEYS received [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: rekey in after 4294967296 blocks [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: KEX done [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: userauth-request for user user1 service ssh-connection method none [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: attempt 0 failures 0 [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: PAM: initializing for "user1"
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: PAM: setting PAM_RHOST to "10.8.238.253"
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: PAM: setting PAM_TTY to "ssh"
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: userauth-request for user user1 service ssh-connection method password [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: attempt 1 failures 0 [preauth]
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: PAM: password authentication accepted for user1
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: do_pam_account: called
16 Окт 16:15:34 user1-SERVER sshd[3215566]: Принят пароль для user1 от 10.8.238.253 порт 65243 ssh2
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: monitor_child_preauth: user1 has been authenticated by privileged process
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: monitor_read_log: child log fd closed
16 Окт 16:15:34 user1-SERVER sshd[3215566]: debug1: PAM: establishing credentials
16 Окт 16:15:34 user1-SERVER sshd[3215566]: pam_unix(sshd:session): session открыта для пользователя user1 (uid=0)
16 Окт 16:17:51 user1-SERVER sshd[1806]: debug1: Forked child 3217034.
16 Окт 16:17:51 user1-SERVER sshd[3217034]: debug1: Set /proc/self/oom_score_adj to 0
16 Окт 16:17:51 user1-SERVER sshd[3217034]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: inetd sockets after dupping: 4, 4
16 Окт 16:18:33 user1-SERVER sshd[3217034]: Подключение от 10.8.238.253 порт 65396 на 10.9.74.101 порт 22 rdomain ""
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.8
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: Remote protocol version 2.0, remote software version libssh_0.9.6
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: no match: libssh_0.9.6
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: permanently_set_uid: 127/65534 [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: SSH2_MSG_KEXINIT sent [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: Received disconnect from 10.8.238.253 port 65396:11: Bye Bye [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: Отключено от 10.8.238.253 порт 65396 [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: do_cleanup [preauth]
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: monitor_read_log: child log fd closed
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: do_cleanup
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: Killing privsep child 3217204
16 Окт 16:18:33 user1-SERVER sshd[3217034]: debug1: audit_event: unhandled event 12
16 Окт 16:18:33 user1-SERVER sshd[1806]: debug1: main_sigchld_handler: Child exited
16 Окт 16:18:37 user1-SERVER sshd[1806]: debug1: Forked child 3217248.
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: Set /proc/self/oom_score_adj to 0
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: inetd sockets after dupping: 4, 4
16 Окт 16:18:37 user1-SERVER sshd[3217248]: Подключение от 10.8.238.253 порт 65435 на 10.9.74.101 порт 22 rdomain ""
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.8
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: Remote protocol version 2.0, remote software version libssh_0.9.6
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: no match: libssh_0.9.6
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: permanently_set_uid: 127/65534 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: SSH2_MSG_KEXINIT sent [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: SSH2_MSG_KEXINIT received [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: kex: algorithm: curve25519-sha256 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: kex: host key algorithm: ssh-ed25519 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: rekey out after 4294967296 blocks [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: Sending SSH2_MSG_EXT_INFO [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: SSH2_MSG_NEWKEYS received [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: rekey in after 4294967296 blocks [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: KEX done [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: userauth-request for user user1 service ssh-connection method none [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: attempt 0 failures 0 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: PAM: initializing for "user1"
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: PAM: setting PAM_RHOST to "10.8.238.253"
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: PAM: setting PAM_TTY to "ssh"
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: userauth-request for user user1 service ssh-connection method password [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: attempt 1 failures 0 [preauth]
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: PAM: password authentication accepted for user1
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: do_pam_account: called
16 Окт 16:18:37 user1-SERVER sshd[3217248]: Принят пароль для user1 от 10.8.238.253 порт 65435 ssh2
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: monitor_child_preauth: user1 has been authenticated by privileged process
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: monitor_read_log: child log fd closed
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: PAM: establishing credentials
16 Окт 16:18:37 user1-SERVER sshd[3217248]: pam_unix(sshd:session): session открыта для пользователя user1 (uid=0)
16 Окт 16:18:37 user1-SERVER sshd[3217248]: Дочерний процесс пользователя на pid 3217304
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: session_new: session 0
16 Окт 16:18:37 user1-SERVER sshd[3217248]: debug1: Поддержка SELinux отключена
Как найти причину и решить эту проблему?
Ответ или решение
Анализ проблемы подключения SSH к серверу на Ubuntu 20.04
В данном вопросе мы сталкиваемся с неполадками при установлении новых SSH-соединений к серверу, несмотря на то что пинг до сервера стабилен и не показывает потери пакетов. Важным аспектом является то, что ранее установленные SSH-соединения работают корректно, включая выполнение команд с использованием sudo
. Поскольку проблема возникает нерегулярно и зависит от времени, важно рассмотреть несколько возможных причин и подходов к её диагностике и устранению.
Потенциальные причины проблемы:
-
Проблемы с селекторами подключения:
- Если у сервера установлено ограничение на количество одновременно открытых SSH-соединений, это может привести к невозможности установить новые соединения. Проверьте параметры конфигурации SSH в файле
/etc/ssh/sshd_config
, особенно параметрMaxSessions
.
- Если у сервера установлено ограничение на количество одновременно открытых SSH-соединений, это может привести к невозможности установить новые соединения. Проверьте параметры конфигурации SSH в файле
-
Ограничения по ресурсам:
- Возможны проблемы с ресурсами (например, нехватка дескрипторов файлов или памяти). Проверьте текущие лимиты с помощью команды
ulimit -n
и увеличьте их при необходимости. - Используйте команду
free -m
для мониторинга использования памяти.
- Возможны проблемы с ресурсами (например, нехватка дескрипторов файлов или памяти). Проверьте текущие лимиты с помощью команды
-
Настройки сетевого файервола:
- Проверьте настройки iptables или ufw, чтобы убедиться, что нет ограничений на установление новых соединений. Используйте команды
sudo iptables -L
иsudo ufw status
для проверки правил файервола.
- Проверьте настройки iptables или ufw, чтобы убедиться, что нет ограничений на установление новых соединений. Используйте команды
-
Неисправности в сетевой инфраструктуре:
- Проверьте, нет ли проблем с маршрутизацией или сетевыми интерфейсами. Если на сервере имеется инфраструктура с несколькими сетевыми интерфейсами, это может вызывать нестабильность в соединениях.
-
Логирование и отладка SSH-сервера:
- Используйте уровень отладки для SSH, изменив параметр
LogLevel
в файле конфигурации/etc/ssh/sshd_config
наDEBUG
. Это позволит получить более подробную информацию о попытках подключения, которая может помочь в диагностике.
- Используйте уровень отладки для SSH, изменив параметр
-
Проблемы с PAM (Pluggable Authentication Module):
- В журнале были упомянуты сообщения о PAM. Это может указывать на проблемы с аутентификацией. Убедитесь, что службы PAM настроены корректно и не блокируют аутентификацию.
Рекомендуемые шаги для диагностики и решения проблемы:
-
Мониторинг системы:
- Ведите мониторинг нагрузки на сервер в момент возникновения проблемы. Используйте утилиты, такие как
top
,htop
илиvmstat
.
- Ведите мониторинг нагрузки на сервер в момент возникновения проблемы. Используйте утилиты, такие как
-
Анализ системных логов:
- Проверьте системные журналы с помощью команды
journalctl
для поиска ошибок или предупреждений в момент возникновения проблемы. Особый интерес могут представлять предупреждения о недостатке ресурсов или блокировках.
- Проверьте системные журналы с помощью команды
-
Анализ логов SSH:
- После активации более подробного логирования SSH, проверьте логи на предмет ошибок и возможных прерываний в обработке подключения.
-
Тестирование конфигурации:
- Попробуйте подключить к серверу с помощью других клиентов SSH или из разных сетей, чтобы исключить проблемы с конкретным клиентом или сетью.
Заключение:
Проблемы со стабильностью SSH-соединений, несмотря на стабильность пинга, могут быть вызваны разнообразными факторами, начиная от ограничений на уровне сервера до сетевых проблем. Данная проблема требует тщательной диагностики, учитывая особенности конфигурации сервера и сетевой инфраструктуры. Применение системного мониторинга и анализа логов, а также корректировка параметров конфигурации SSH помогут в выявлении и устранении проблем.