SSH Linux, OpenSSH client/server

Как настроить вход по ключу без отключения рабочего доступа

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Необходимо перейти на вход по ключу SSH, сохранив действующий вход и возможность аварийного восстановления; парольную аутентификацию не отключаем до полной проверки.

В этой статье
  1. Как распознать проблему и где применимы действия
  2. Возможные причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить, что проблема действительно устранена
  5. Если результат не получен

#Как распознать проблему и где применимы действия

Необходимо перейти на вход по ключу SSH, сохранив действующий вход и возможность аварийного восстановления; парольную аутентификацию не отключаем до полной проверки. Перед выполнением определите название программы, редакцию Linux и управляющий сервис. Значения примеров в командах не являются готовой конфигурацией вашего устройства.

#Возможные причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Ключ создан, но не установленНа сервере нет соответствующей строки authorized_keysДобавить только публичную часть для правильного пользователя
Клиент выбирает другой ключВ -vvv виден иной IdentityFileУказать -i и IdentitiesOnly=yes
Сервер отказывает из-за прав или политикиЛоги sshd показывают bad ownership либо PubkeyAuthentication noИсправить адресно, не менять права всего домашнего каталога

#Пошаговая диагностика и исправление

  1. Шаг 1. Сохраните два пути входаОставьте текущий сеанс подключённым и проверьте доступность консоли хостера. В другом терминале проверьте версию SSH. Не меняйте PasswordAuthentication на no на этом этапе.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh -V
  1. Шаг 2. Создайте отдельный ключ на клиентеВ клиентском терминале команда создаёт Ed25519-ключ с защитной фразой и собственным именем. Если указанное имя уже существует, откажитесь от перезаписи и выберите другое.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)С осторожностью
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519_work -C 'personal-key'

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Шаг 3. Убедитесь, что публичный ключ существуетНа клиенте вывод должен содержать тип ED25519 и отпечаток. Закрытый файл id_ed25519_work никогда не отправляйте на сервер и не прикладывайте к заявке поддержки.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh-keygen -lf ~/.ssh/id_ed25519_work.pub
  1. Шаг 4. Добавьте публичный ключ без замены старыхПока работает старый метод входа, ssh-copy-id добавит публичный ключ в authorized_keys. Если команды нет или парольный вход запрещён, попросите администратора добавить .pub через консоль.
    Linux · Терминал (Bash)С осторожностью
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh-copy-id -i ~/.ssh/id_ed25519_work.pub пользователь@server.example.org

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Шаг 5. Испытайте строго определённый ключОткройте новый терминал, выполните подключение по выделенному ключу с IdentitiesOnly=yes. Если сервер запрашивает passphrase локально — это нормально; запрос пароля учётной записи означает, что ключ ещё не принят.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh -i ~/.ssh/id_ed25519_work -o IdentitiesOnly=yes пользователь@server.example.org
  1. Шаг 6. Убедитесь, что сервер принимает именно этот ключНа сервере с действующим сеансом проверьте журнал аутентификации. Ищите Accepted publickey for имя_пользователя. Не удаляйте предыдущий метод входа до проверки доступа с другого устройства. Команды sudo или sudoedit выполняются с полномочиями администратора; если sudo не установлен, используйте разрешённую административную сессию.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Linux на сервере/клиенте, указанном в шаге. Нужны права администратора; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    sudo journalctl -b -u ssh.service -u sshd.service -n 80 --no-pager

#Как проверить, что проблема действительно устранена

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

#Если результат не получен

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

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.