Вопрос Аутентификация открытого ключа Разрешение отклонено (publicickey)


Я пытаюсь настроить аутентификацию открытого ключа на сервере под управлением Ubuntu 14.04, следуя эта почта, Я сделал следующее:

  1. Сгенерированные ключи RSA при использовании хоста ssh-keygen -t rsa,

    Клавиши (id_rsa & id_rsa.pub) теперь хранятся в каталоге ~ / .ssh.

  2. Скопировали ключи на сервер, используя ssh-copy-id <username>@<host>

  3. Отредактированный файл / etc / ssh / sshd_config для добавления строки PasswordAuthentication no,

  4. Перезапуск ssh с /etc/init.d/ssh restart,

Теперь, когда я пытаюсь выполнить ssh с хоста на сервер, я получаю следующее отображение (я отредактировал некоторые данные, такие как адрес сервера и имена хостов):

$: ssh -v user @ domain
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 января 2014 г.
debug1: Чтение данных конфигурации /home/host/.ssh/config
debug1: Чтение данных конфигурации / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config строка 19: Применение параметров для *
debug1: подключение к домену [192.168.xx.xx] порт 22.
debug1: установлено соединение.
debug1: файл идентификации /home/host/.ssh/id_rsa тип 1
debug1: файл идентификации /home/host/.ssh/id_rsa-cert type -1
debug1: файл идентификации /home/host/.ssh/id_dsa type -1
debug1: файл идентификации /home/host/.ssh/id_dsa-cert type -1
debug1: файл идентификации /home/host/.ssh/id_ecdsa type -1
debug1: файл идентификации /home/host/.ssh/id_ecdsa-cert type -1
debug1: файл идентификации /home/host/.ssh/id_ed25519 Тип -1
debug1: файл идентификации /home/host/.ssh/id_ed25519-cert type -1
debug1: включение режима совместимости для протокола 2.0
debug1: строка локальной версии SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
debug1: Удаленный протокол версии 2.0, версия удаленного программного обеспечения OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 pat OpenSSH_6.6.1 * compat 0x04000000
debug1: отправлен SSH2_MSG_KEXINIT
debug1: получен SSH2_MSG_KEXINIT
debug1: kex: server-> client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client-> server aes128-ctr hmac-md5-etm@openssh.com none
debug1: отправка SSH2_MSG_KEX_ECDH_INIT
debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY
debug1: Ключ хоста сервера: ECDSA 16: 00: b8: c5: 89: af: e9: 50: 22: 85: 76: 6d: 65: 1c: aa: b4
debug1: Host 'domain' известен и соответствует ключу хоста ECDSA.
debug1: найден ключ в /home/host/.ssh/known_hosts:2
debug1: ssh_ecdsa_verify: подпись правильная
debug1: отправлено сообщение SSH2_MSG_NEWKEYS
debug1: ожидается SSH2_MSG_NEWKEYS
debug1: получено SSH2_MSG_NEWKEYS
debug1: отправлен SSH2_MSG_SERVICE_REQUEST
debug1: получен SSH2_MSG_SERVICE_ACCEPT
debug1: аутентификация, которая может продолжаться: публикация
debug1: следующий метод аутентификации: публикация
debug1: предоставление открытого ключа RSA: /home/host/.ssh/id_rsa
debug1: аутентификация, которая может продолжаться: публикация
debug1: использование секретного ключа: /home/host/.ssh/id_dsa
debug1: использование секретного ключа: /home/host/.ssh/id_ecdsa
debug1: использование секретного ключа: /home/host/.ssh/id_ed25519
debug1: больше нет методов проверки подлинности.
Разрешение отклонено (publickey).

Я следил это чтобы устранить проблему и сделали следующее:

  1. Обеспеченные разрешения не слишком открыты стандартами OpenSSH.

    chmod go-w ~/
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  2. Создал файл authorized_keys на главном компьютере ssh-copy-id host@127.0.0.1 и скопировал файл authorized_keys на сервер, затем изменил права собственности и разрешения.

Тем не менее проблема сохраняется. Я смог ssh на сервере успешно использовать пароль, прежде чем пытаться использовать аутентификацию Publickey. Кто-нибудь еще сталкивался с подобными проблемами?

Редактировать :

На выходе была добавлена ​​новая строка, когда я позже попытался перейти к ssh: Agent admitted failure to sign using the key., Некоторые поисковые запросы привели к это вопрос. Эта проблема называется помехами gnome-keyring. Когда я попробовал SSH_AUTH_SOCK=0 ssh user@domain Мне удалось успешно войти в систему, используя аутентификацию publicickey. Спасибо всем за ваш вклад.


2
2017-11-08 07:42


происхождения


можете ли вы каким-то образом добраться до сервера и посмотреть, был ли ключ успешно добавлен в ~/.ssh/authorized_keys ? и добавить его вручную? - RoVo
Совет в следующий раз: вам не хватает одного шага между 2. и 3. «Проверьте, работает ли вход с ключом» - RoVo
Похожие вопросы: askubuntu.com/questions/394305/public-key-authentication-failed - RoVo
@RoVo Да. Я проверил файл authorized_keys на сервере. Ключ был добавлен успешно. Я даже запускал diff с авторизованными ключами, которые я сгенерировал для использования с loopback на хосте. Как я могу проверить «если вход с ключом работает» ?. - lets_try
Пытаться ssh -i ~/.ssh/key_name user@domain Зашифрован ли ваш домашний каталог на сервере? - Panther


ответы:


Когда я попробовал ssh -i ~/.ssh/key_name user@domain был ответ от сервера, который сказал Agent admitted failure to sign using the key., Это, по-видимому, связано с проблемой помех, связанных с гном-клавиатурой, и исправление обсуждается в этом ссылка,

Временное решение - попытаться SSH_AUTH_SOCK=0 ssh user@domain и если с этим вы можете ssh на свой сервер, то следуйте с исправлением в приведенной выше ссылке.


2
2017-11-09 06:05