sshd отказывается от publickey, хотя и соответствует?


2

Я использую OpenSSH 6.8, поставляемый с DSM 6 на моем Synology NAS в качестве сервера, и OpenSSH 7.3p1 на моем Arch Notebook в качестве клиента. Я могу войти в систему как пользователь adminпо умолчанию через пароль, но не через ключ, и не могу понять, почему.

Странная вещь: сервер, кажется, принимает мой открытый ключ, но все же откладывает его?

...
debug1: userauth-request for user admin service ssh-connection method publickey [preauth]
debug1: attempt 1 failures 0 [preauth]
debug1: test whether pkalg/pkblob are acceptable [preauth]
debug1: temporarily_use_uid: 1024/100 (e=0/0)
debug1: trying public key file /var/services/homes/admin/.ssh/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: matching key found: file /var/services/homes/admin/.ssh/authorized_keys, line 1 RSA SHA256:Kq+mYIESxPced3WZ0/GXkKeYxzn5aLI8P0S8MoVPll4
debug1: restore_uid: 0/0
Postponed publickey for admin from <client IP> port 43226 ssh2 [preauth]
...

Я уже пробовал несколько перезапусков как компьютеров sshd, так и почти всех возможных разрешений на доступ к домашней папке пользователя admin и ее .sshкаталогу. Но это, похоже, не проблема. Что здесь не так?

Любые идеи с благодарностью! Заранее спасибо,
Лукас

РЕДАКТИРОВАТЬ: клиент говорит: «агент отказался от операции» после исследования ключа:

debug1: Offering RSA public key: /home/client/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp SHA256:Kq+m***
debug3: sign_and_send_pubkey: RSA SHA256:Kq+m***
sign_and_send_pubkey: signing failed: agent refused operation

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


Эти [preauth]строки журнала и Postponedрезультат (оба) означают, что клиент отправил authreq с method = publickey и boolean = FALSE, чтобы "запросить", будет ли pubkey "приемлемым" (см. Раздел 7 rfc4252). Получив положительный ответ, он должен приступить к отправке настоящего авто (с подписью); Я предлагаю вам попробовать -vили, возможно, несколько из них на клиенте, чтобы понять, почему это не так.
dave_thompson_085

Ответы:


1

Скорее всего, это проблема с правами доступа к файлу ключей на вашем сервере. Убедитесь, что ваша .sshпапка, файлы внутри и домашний каталог, в котором находится .sshпапка, имеют ограниченные разрешения. Сервер OpenSSH отклоняет ключевые операции, если разрешения на них слишком разрешительны. Это означает, что от 700всего часто отказывают.

Сервер OpenSSH выводит предупреждения, если разрешения неверны, но только в качестве уровня отладки 3, поэтому они не отображаются в обычном режиме вывода или в обычном режиме отладки. Кроме того, предупреждения о разрешениях появляются только при попытке подключения. Запустите, sshd -D -ddd -eчтобы включить отладку третьего уровня и сделать предупреждения печати OpenSSH о разрешениях файла ключа. Обязательно остановите ваш сервер OpenSSH, прежде чем он запустится.

Сервер OpenSSH будет ожидать любого входящего соединения, но не переключаться в фоновый режим, поэтому весь вывод печатается в stdout. Поэтому вы можете наблюдать за сервером OpenSSH, пытаясь установить соединение SSH с одного из ваших клиентов. Если вы видите предупреждения о разрешениях, как только вы пытаетесь войти в систему, попробуйте эти команды, чтобы исправить ваши разрешения:

chmod 700 ~
chmod 700 -R ~/.ssh

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

Перезапустите сервер OpenSSH и посмотрите, исправлена ​​ли проблема :)


0
debug1: Server accepts key: pkalg ssh-rsa blen 279

Это всего лишь тест на соответствие клавиш

sign_and_send_pubkey: signing failed: agent refused operation

Чтобы получить доступ, вам нужно доказать, что вы ssh-agentвладеете закрытым ключом, который вам не удался, и поэтому вы отклонены.

Какой у тебя ssh-agentи где он берет свои ключи?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.