1

Я использую 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 . Но это, похоже, не проблема. Что здесь не так?

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

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

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

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

2 ответа2

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

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

sign_and_send_pubkey: signing failed: agent refused operation

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

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

0

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

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

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

chmod 700 ~
chmod 700 -R ~/.ssh

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

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

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