Не удается подключиться к удаленной машине по SSH – ошибка: Доступ запрещен (публичный ключ, клавиатурный интерактивный ввод)

Вопрос или проблема

Я пытался подключиться к удаленной машине с новой второй администраторской учетной записью, но пароль был отклонен. Я совершенно уверен, что ввел правильный пароль для второй администраторской учетной записи. После трех попыток я получил следующую ошибку:

$ Permission denied (publickey,keyboard-interactive).

Был момент, когда меня спросили о каком-то ключе. Я ответил “да”. После трех неудачных попыток входа я еще не увидел варианта с ключом.

Я все время получаю указанную выше ошибку. Я думаю, что система хотела, чтобы я ввел текущего администратора (первый администратор), который был вошел в систему. Если это так, как я могу добавить свою вторую администраторскую учетную запись для входа (по SSH), пока первый администратор вошел в систему (GUI)?

Я создал вторую администратора так…

sudo dscl . create /Users/$USERNAME 
sudo dscl . create /Users/$USERNAME UniqueID 405
sudo dscl . create /Users/$USERNAME PrimaryGroupID 80
sudo dscl . create /Users/$USERNAME NFSHomeDirectory /private/var/$USERNAME
sudo dscl . create /Users/$USERNAME UserShell /bin/bash
sudo dscl . passwd /Users/$USERNAME "$PASSWORD"
sudo dscl . append /Groups/admin GroupMembership $USERNAME

…и включил удаленный вход с помощью следующих настроек…

sudo systemsetup -setremotelogin on
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist > /dev/null 2>&1

Вероятно, у вас есть ключ в .ssh/knownhosts на вашем локальном компьютере, и проблема в том, что ваш knownhost ключ может связывать вас с оригинальным пользователем, а не с новым:

  1. vim .ssh/knownhosts
    
  2. Найдите IP-адрес сервера) → Удалите этот ключ → Сохраните и выйдите
  3. Попробуйте снова подключиться по SSH

Ответ или решение

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

1. Понимание сообщения об ошибке

Сообщение "Permission denied (publickey,keyboard-interactive)" означает, что SSH-сервер не смог подтвердить вашу личность с помощью доступных методов аутентификации: либо через открытые ключи, либо через интерактивные методы (например, по паролю). Это может произойти по нескольким причинам:

  • Неправильная конфигурация SSH-сервера.
  • Проблемы с правами доступа к ключу.
  • Ошибки в настройках учетной записи пользователя.

2. Проверка настроек пользователя

Вы упомянули, что создавали второго администратора с помощью команды dscl. Рассмотрим детали:

sudo dscl . create /Users/$USERNAME 
sudo dscl . create /Users/$USERNAME UniqueID 405
sudo dscl . create /Users/$USERNAME PrimaryGroupID 80
sudo dscl . create /Users/$USERNAME NFSHomeDirectory /private/var/$USERNAME
sudo dscl . create /Users/$USERNAME UserShell /bin/bash
sudo dscl . passwd /Users/$USERNAME "$PASSWORD"
sudo dscl . append /Groups/admin GroupMembership $USERNAME

Обратите внимание на следующие моменты:

  • UniqueID: Убедитесь, что указанное значение уникально для данного пользователя. Если этот ID совпадает с существующим пользователем, это может вызвать конфликты.
  • Пароль: Убедитесь, что пароль установлен правильно, и вы используете именно его.

3. Активация SSH и проверка настроек

Вы активировали удаленный вход с помощью:

sudo systemsetup -setremotelogin on
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist > /dev/null 2>&1

Это правильные команды для активирования SSH-доступа. Убедитесь, что ваш SSH-сервер работает корректно с помощью:

sudo systemsetup -getremotelogin

Если отображается "Remote Login: On", значит, SSH-сервер запущен.

4. Конфигурация SSH-клиента

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

Используйте следующие команды для обновления известных хостов:

  1. Откройте файл known_hosts:
    vim ~/.ssh/known_hosts
  2. Найдите строку с IP адресом вашего сервера и удалите её.
  3. Сохраните изменения и выйдите из редактора.

5. Параметры SSH

Вы можете добавить аутентификацию по паролю в конфигурацию SSH-сервера, отредактировав файл конфигурации SSH, который обычно находится по адресу /etc/ssh/sshd_config. Убедитесь, что следующие строки установлены:

PasswordAuthentication yes
PermitRootLogin no

После изменений перезапустите SSH-сервер:

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

6. Заключение

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

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

tail -f /var/log/auth.log

Это даст дополнительную информацию о том, почему доступ отклоняется.

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

Капча загружается...