3

Я помогаю другу, у которого возникли проблемы с подключением с использованием аутентификации с открытым ключом, к серверу, который я обслуживаю. Аутентификация с открытым ключом отлично работает для пары других пользователей. Конечно, открытый ключ моего друга находится в файле author_keys на сервере.

debug1: Host 'xxxxx' is known and matches the RSA host key.
debug1: Found key in /home/xxx/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xxx/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: email@address.com
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/xxx/.ssh/id_dsa
debug1: Trying private key: /home/xxx/.ssh/id_ecdsa
debug1: Next authentication method: password

Следующая строка не имеет смысла для меня

Server accepts key: pkalg ssh-rsa blen 279

Поскольку сервер считает, что открытый ключ совершенно корректен, почему он продолжает аутентификацию по паролю вместо аутентификации пользователя?

3 ответа3

5

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

Например, небезопасные разрешения для пользователей домашних или .ssh каталогов.

3

В моем случае проблема заключалась в том, что пользователь, к которому он пытался подключиться, был root, и я отключил root ssh login (что, вероятно, должен делать каждый). Поэтому убедитесь, что ваш друг пытается подключиться через правильную учетную запись пользователя без полномочий root.

0

Я недавно испытал это с интерфейсом Gerrit SSH. Проблема заключалась в том, что мой локальный агент SSH предлагал кучу разных ключей серверу Gerrit, и после некоторого ограничения сервер просто отказывался принимать дополнительные ключи (но все равно отвечал, что Server accepts key). Я не знаю, относится ли это поведение к Gerrit или к обычному OpenSSH.

Исправление состояло в том, чтобы принудительно выбрать правильный ключ в ~/.ssh/config:

Host gerrit.example.org
  IdentityFile ~/path/to/my_key
  IdentitiesOnly yes

Убедившись, что ~/path/to/my_key.pub существует (его можно создать с помощью ssh-keygen -f ~/path/to/my_key -y > ~/path/to/my_key.pub), агент ssh может предоставить ключ без необходимости повторного ввода пароля, но не предоставил никаких других ключей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .