Как исправить ошибку «Сбой подключения SSH» после обновления до Ubuntu 22.04.1

Убунту 15

Если вы недавно обновились до Ubuntu 22.04.1 LTS и обнаружили, что у вас не работает SSH-соединение, вы не одиноки. Многие пользователи сообщали о подобной проблеме, в частности, видели сообщение об ошибке «userauth_pubkey: тип ключа ssh-rsa отсутствует в PubkeyAcceptedAlgorithms». [preauth]». В этой статье вы узнаете, как решить эту проблему и восстановить SSH-соединение.

Чтобы исправить ошибку сбоя подключения SSH после обновления до Ubuntu 22.04.1, вы можете изменить файл конфигурации SSH, чтобы принять устаревший тип ключа ssh-rsa, или сгенерировать новую пару ключей, используя более безопасный алгоритм, например Ed25519. Кроме того, убедитесь, что сервер SSH работает и установлены необходимые правила брандмауэра, разрешающие соединения SSH.

Понимание проблемы

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

Изменение файла конфигурации SSH

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

  1. Откройте терминал и введите следующую команду, чтобы открыть файл конфигурации SSH в текстовом редакторе:

судо нано /etc/ssh/ssh_config

  1. Добавьте в файл следующие строки:

PubkeyAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-rsa

Параметр PubkeyAcceptedKeyTypes указывает типы ключей, которые клиент будет принимать для проверки подлинности с открытым ключом. +ssh-rsa добавляет тип ключа ssh-rsa в список принятых типов ключей.

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

  1. Сохраните файл и выйдите из текстового редактора.
  2. Перезапустите службу SSH с помощью следующей команды:

sudo systemctl перезапустить SSH

Это должно позволить SSH-клиенту подключаться с использованием устаревшего типа ключа ssh-rsa.

Генерация новой пары ключей

Хотя приведенное выше решение устранит непосредственную проблему, важно отметить, что тип ключа ssh-rsa по какой-то причине устарел. Он менее безопасен, чем новые алгоритмы, и может быть удален в будущих обновлениях. Поэтому рекомендуется сгенерировать новую пару ключей, используя более безопасный алгоритм, например Ed25519.

Вот как вы можете сгенерировать новую пару ключей:

  1. Откройте терминал и введите следующую команду:

ssh-keygen -t ed25519 -C “ваш_email@example.com”

Опция -t указывает тип создаваемого ключа. В данном случае мы создаем ключ Ed25519. Опция -C позволяет добавить комментарий к ключу. Обычно это используется для идентификации ключа.

  1. Следуйте инструкциям, чтобы завершить процесс генерации ключа.
  2. После создания пары ключей вам нужно будет добавить открытый ключ в файл ~/.ssh/authorized_keys на сервере. Это можно сделать с помощью следующей команды:

ssh-copy-id -i ~/.ssh/id_ed25519.pub ваше_имя_пользователя@ip_вашего_сервера

Команда ssh-copy-id копирует открытый ключ на указанный сервер. Опция -i указывает идентификационный файл (открытый ключ). your_username@your_server_ip — это имя пользователя и IP-адрес вашего сервера.

  1. Наконец, вам нужно будет обновить конфигурацию сервера SSH, чтобы использовать новый ключ. Это можно сделать, изменив файл /etc/ssh/sshd_config на сервере.

Проверка SSH-сервера и правил брандмауэра

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

статус sudo systemctl ssh

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

sudo systemctl запустить SSH

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

статус sudo ufw

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

sudo ufw разрешить SSH

Заключение

Хотя обновление до Ubuntu 22.04.1 LTS может вызвать проблемы с подключением SSH из-за устаревания типа ключа ssh-rsa, эти проблемы можно решить, изменив файл конфигурации SSH или создав новую пару ключей. Кроме того, стоит проверить состояние SSH-сервера и правил брандмауэра, чтобы убедиться, что они не вызывают проблем с подключением. Выполнив действия, описанные в этой статье, вы сможете восстановить SSH-соединение и без проблем продолжить использование обновленного экземпляра Ubuntu.

SSH (Secure Shell) — это криптографический сетевой протокол, который обеспечивает безопасный удаленный доступ к компьютеру или серверу через незащищенную сеть. Он обеспечивает безопасный способ аутентификации и шифрования передачи данных между клиентом и сервером.

Чтобы открыть файл конфигурации SSH, вы можете использовать в терминале следующую команду: sudo nano /etc/ssh/ssh_config. Это откроет файл в текстовом редакторе nano с правами root.

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

Тип ключа ssh-rsa считается менее безопасным по сравнению с более новыми алгоритмами. Он использует алгоритм RSA, который имеет известные уязвимости и слабые места. В результате для большей безопасности рекомендуется использовать более новые алгоритмы, такие как Ed25519.

Чтобы сгенерировать новую пару ключей с помощью Ed25519, вы можете использовать команду ssh-keygen -t ed25519 -C «your_email@example.com». Это создаст новую пару ключей Ed25519 с указанным адресом электронной почты в качестве комментария.

Вы можете добавить открытый ключ в файлauthorized_keys на сервере с помощью команды ssh-copy-id. Например, ssh-copy-id -i ~/.ssh/id_ed25519.pub ваше_имя_пользователя@ip_вашего_сервера. Эта команда копирует открытый ключ на указанный сервер и добавляет его в файлauthorized_keys.

Чтобы проверить, работает ли SSH-сервер, вы можете использовать команду sudo systemctl status ssh. Это отобразит текущий статус службы SSH, указывая, работает она или нет.

Если SSH-сервер не запущен, его можно запустить с помощью команды sudo systemctl start ssh. Это запустит службу SSH и разрешит входящие соединения SSH.

Вы можете проверить, блокирует ли брандмауэр SSH-соединения, используя команду sudo ufw status. Это отобразит текущий статус брандмауэра и укажет, блокируют ли какие-либо правила SSH.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *