Вопрос или проблема
Недавно я обновил свой компьютер для веб-разработки до Ubuntu 24.04 и теперь не могу подключиться по ssh к своему веб-хостингу.
Попробовав новый пароль и новый ssh ключ, поexperimentировав с serverAliveInterval
connectionAliveInterval
и действительно не найдя других сообщений, которые казались бы решением проблемы, я переустановил 22.04 и все еще имею такую же проблему.
Смотря на подробный вывод, неясно, но мне кажется, что хост принимает SSH ключ и пароль.
К сожалению, я не контролирую веб-хостинг.
Пожалуйста, дайте мне знать, если вы хотите взглянуть на что-то еще.
Вот подробный вывод из недавней попытки входа
ssh -v alias
OpenSSH_8.9p1 Ubuntu-3ubuntu0.10, OpenSSL 3.0.2 15 Mar 2022
debug1: Чтение конфигурационных данных /home/lucky/.ssh/config
debug1: /home/lucky/.ssh/config строка 1: Применение параметров для a2
debug1: Чтение конфигурационных данных /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: include /etc/ssh/ssh_config.d/*.conf не соответствует файлам
debug1: /etc/ssh/ssh_config строка 21: Применение параметров для *
debug1: Подключение к веб-хосту [###.#.##.##] порт 7822.
debug1: Подключение установлено.
debug1: файл идентификатора /home/lucky/.ssh/id_rsa тип 0
debug1: файл идентификатора /home/lucky/.ssh/id_rsa-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ecdsa тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ecdsa-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ecdsa_sk тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ecdsa_sk-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ed25519 тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ed25519-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ed25519_sk тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_ed25519_sk-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_xmss тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_xmss-cert тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_dsa тип -1
debug1: файл идентификатора /home/lucky/.ssh/id_dsa-cert тип -1
debug1: Локальная версия SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10
debug1: Удаленная версия протокола 2.0, удаленная версия ПО OpenSSH_8.0
debug1: compat_banner: совпадение: OpenSSH_8.0 pat OpenSSH* compat 0x04000000
debug1: Аутентификация на веб-хосте:7822 как 'userName'
debug1: load_hostkeys: fopen /home/lucky/.ssh/known_hosts2: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: Нет такого файла или каталога
debug1: SSH2_MSG_KEXINIT отправлено
debug1: SSH2_MSG_KEXINIT получено
debug1: kex: алгоритм: curve25519-sha256
debug1: kex: алгоритм ключа хоста: ssh-ed25519
debug1: kex: сервер->клиент шифр: aes128-ctr MAC: [email protected] сжатие: нет
debug1: kex: клиент->сервер шифр: aes128-ctr MAC: [email protected] сжатие: нет
debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY получено
debug1: Ключ хоста сервера: ssh-ed25519 SHA256:wcoWSc8VXzSRHRyLTdyzM8UY+qFON91gHBjMzjEOvUA
debug1: load_hostkeys: fopen /home/lucky/.ssh/known_hosts2: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: Нет такого файла или каталога
debug1: Хост '[webhost]:7822' известен и соответствует ключу ED25519 хоста.
debug1: Найден ключ в /home/lucky/.ssh/known_hosts:1
debug1: ssh_packet_send2_wrapped: сброс номера последовательности отправки 3
debug1: переключение выхода после 4294967296 блоков
debug1: SSH2_MSG_NEWKEYS отправлено
debug1: ожидается SSH2_MSG_NEWKEYS
debug1: ssh_packet_read_poll2: сброс номера последовательности чтения 3
debug1: SSH2_MSG_NEWKEYS получено
debug1: переключение входа после 4294967296 блоков
debug1: get_agent_identities: привязка агента к ключу хоста
debug1: get_agent_identities: агент вернул 1 ключ
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_rsa RSA SHA256:Ojg06NqtGvIJVI+mfheuMhnYObn1bXYBzc4DhnXsmps агент
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_ecdsa
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_ecdsa_sk
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_ed25519
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_ed25519_sk
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_xmss
debug1: Будет пытаться ключ: /home/lucky/.ssh/id_dsa
debug1: SSH2_MSG_EXT_INFO получено
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT получено
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Следующий метод аутентификации: gssapi-with-mic
debug1: Учетные данные не были предоставлены, или учетные данные были недоступны или недоступны
Нет доступных учетных данных Kerberos (кэш по умолчанию: FILE:/tmp/krb5cc_1000)
debug1: Учетные данные не были предоставлены, или учетные данные были недоступны или недоступны
Нет доступных учетных данных Kerberos (кэш по умолчанию: FILE:/tmp/krb5cc_1000)
debug1: Следующий метод аутентификации: publickey
debug1: Предложение открытого ключа: /home/lucky/.ssh/id_rsa RSA SHA256:Ojg06NqtGvIJVI+mfheuMhnYObn1bXYBzc4DhnXsmps агент
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_ecdsa
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_ecdsa_sk
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_ed25519
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_ed25519_sk
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_xmss
debug1: Попытка закрытого ключа: /home/lucky/.ssh/id_dsa
debug1: Следующий метод аутентификации: пароль
пароль userName@webhost:
Аутентифицирован на веб-хосте ([###.#.##.##]:7822) с использованием "пароля".
debug1: канал 0: новая [client-session]
debug1: Запрос [email protected]
debug1: Вход в интерактивную сессию.
debug1: pledge: файловая система
client_loop: отправка отключения: Разорванное соединение
Я заметил, что include /etc/ssh/ssh_config.d/*.conf не соответствует файлам
.
Я не знаю, исправление этого решит проблему или как это исправить.
ls -ls /etc/ssh/
всего 548
4 -rw-r--r-- 1 root root 142 Ноя 8 10:28 known_hosts
496 -rw-r--r-- 1 root root 505426 Июн 26 06:11 moduli
4 -rw-r--r-- 1 root root 1650 Фев 25 2022 ssh_config
4 drwxr-xr-x 2 root root 4096 Фев 25 2022 ssh_config.d
4 -rw-r--r-- 1 root root 3257 Ноя 7 16:56 sshd_config
4 drwxr-xr-x 2 root root 4096 Июн 26 06:11 sshd_config.d
4 -r--r--r-- 1 root root 3254 Ноя 7 11:10 sshd_config.original
4 -rw------- 1 root root 525 Ноя 7 11:08 ssh_host_ecdsa_key
4 -rw-r--r-- 1 root root 187 Ноя 7 11:08 ssh_host_ecdsa_key.pub
4 -rw------- 1 root root 419 Ноя 7 11:08 ssh_host_ed25519_key
4 -rw-r--r-- 1 root root 107 Ноя 7 11:08 ssh_host_ed25519_key.pub
4 -rw------- 1 root root 2610 Ноя 7 11:08 ssh_host_rsa_key
4 -rw-r--r-- 1 root root 579 Ноя 7 11:08 ssh_host_rsa_key.pub
4 -rw-r--r-- 1 root root 342 Дек 7 2020 ssh_import_id
Очевидно, /etc/ssh/ssh_config.d существует, как и known_hosts
ls -l .ssh/
всего 16
-rw------- 1 lucky lucky 221 Июн 7 11:27 config
-rw------- 1 lucky lucky 3434 Ноя 7 15:45 id_rsa
-rw-r--r-- 1 lucky lucky 752 Ноя 7 15:45 id_rsa.pub
-rw-r--r-- 1 lucky lucky 142 Ноя 7 11:23 known_hosts
Вот соответствующие части .ssh/config
cat .ssh/config
Host webHostAlias
HostName webHost
Port 7822
User userName
HostKeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss
Это вывод из журналов ssh
journalctl -fu ssh
Ноя 07 17:03:12 lucky-Precision-3551 sshd[18495]: Сервер слушает на :: порт 22.
Ноя 07 17:03:12 lucky-Precision-3551 systemd[1]: Запущен OpenBSD Secure Shell сервер.
Ноя 08 08:56:03 lucky-Precision-3551 sshd[18495]: Получен сигнал 15; завершение.
Ноя 08 08:56:03 lucky-Precision-3551 systemd[1]: Остановка OpenBSD Secure Shell сервера...
Ноя 08 08:56:03 lucky-Precision-3551 systemd[1]: ssh.service: Успешно деактивирован.
Ноя 08 08:56:03 lucky-Precision-3551 systemd[1]: Остановлен OpenBSD Secure Shell сервер.
Ноя 08 08:56:03 lucky-Precision-3551 systemd[1]: Запуск OpenBSD Secure Shell сервера...
Ноя 08 08:56:03 lucky-Precision-3551 sshd[164509]: Сервер слушает на 0.0.0.0 порт 22.
Ноя 08 08:56:03 lucky-Precision-3551 sshd[164509]: Сервер слушает на :: порт 22.
Ноя 08 08:56:03 lucky-Precision-3551 systemd[1]: Запущен OpenBSD Secure Shell сервер.
Я подозреваю, что это конфликт, вызванный обновлением, и я знаю лишь достаточно, чтобы сделать полное форматирование, либо ssh, либо диска.
Любые предложения будут весьма признательны. Спасибо за чтение.
Ответ или решение
Проблема с подключением по SSH к вашему веб-хосту после обновления с Ubuntu 22.04 до 24.04 может быть вызвана несколькими факторами. Давайте разберёмся в возможных причинах и решениях на основе предоставленной информации.
Ситуация и Симптомы
После обновления вы столкнулись с проблемами при подключении к вашему веб-хосту через SSH, причем вы пробовали разные пароли и ключи SSH. При этом вы указали, что verbose-вывод показывает успешное принятие ключа и пароля, но затем возникает ошибка "Broken pipe". Это означает, что соединение разрывается после аутентификации, что указывает на проблемную точку в процессе подключения.
Возможные Причины
-
Версия OpenSSH: Вы используете OpenSSH версии 8.9p1 на вашем компьютере под управлением Ubuntu 24.04, тогда как веб-хост работает на OpenSSH версии 8.0. Существуют возможности несовместимости между разными версиями, особенно в том, что касается алгоритмов шифрования и аутентификации. Иногда более старые серверы могут не поддерживать новые алгоритмы, которые используются в новых версиях клиента.
-
Алгоритмы ключей и шифрования: Первоначальные аргументы
HostKeyAlgorithms
иPubkeyAcceptedAlgorithms
, которые вы указали в файле конфигурации~/.ssh/config
, могут помочь, но стоит проверить, поддерживает ли сервер эти алгоритмы. Например,ssh-rsa
должен быть в этом списке. -
Настройки конфигурации SSH: Отсутствие файлов в каталоге
/etc/ssh/ssh_config.d/
, на которые ссылается выводаinclude /etc/ssh/ssh_config.d/*.conf matched no files
, не должно вызывать проблем, но стоит проверить, нет ли других файлов конфигурации, которые могут повлиять на поведение SSH. -
Настройки вашего веб-хоста: Если вы не контролируете веб-хост, то возможны изменения в их конфигурации после обновления, которые могут препятствовать подключению. Это может быть вызвано изменениями в их политике безопасности, обновлением программного обеспечения или изменениями их сетевой инфраструктуры.
Рекомендации по Решению Проблемы
-
Проверьте совместимость алгоритмов: Используйте следующее в конфигурационном файле SSH (
~/.ssh/config
), чтобы убедиться, что вашего веб-хоста поддерживаются корректные алгоритмы:Host webHostAlias HostName webHost Port 7822 User userName HostKeyAlgorithms +ssh-rsa,ssh-dss PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss
-
Попробуйте изменить настройки KeepAlive: Иногда аутентификация проходит успешно, но сессия разрывается из-за тайм-аута. Попробуйте добавить в ваш конфигурационный файл SSH следующие строки:
ServerAliveInterval 60 ServerAliveCountMax 3
-
Тестирование других клиентов SSH: Попробуйте подключиться с другого клиента SSH, чтобы исключить возможность проблем на стороне Ubuntu. Это может быть другой компьютер или даже использование SSH-клиента на Windows (например, PuTTY).
-
Логи веб-хоста: Если это возможно, попросите техподдержку веб-хоста предоставить информацию из логов SSH, чтобы определить, почему подсоединение разрывается на сервере.
-
Обратитесь в техподдержку хостинга: Сообщите о вашей проблеме и предоставьте детали, включая версии OpenSSH и описания ошибок. Это может помочь им диагностировать проблему на их стороне.
Заключение
Ваша проблема с SSH после обновления до Ubuntu 24.04 может быть вызвана несколькими причинами, включая несовместимость версий OpenSSH, настройки конфигурации или изменения на стороне веб-хоста. Следуя рекомендациям по проверке совместимости алгоритмов шифрования и тестированию подключения, вы сможете определить источник проблемы. Если сами вы не сможете решить вопрос, обращайтесь в техподдержку вашего хостинга для получения помощи.