Я использую 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
или, возможно, несколько из них на клиенте, чтобы понять, почему это не так.Ответы:
Скорее всего, это проблема с правами доступа к файлу ключей на вашем сервере. Убедитесь, что ваша
.ssh
папка, файлы внутри и домашний каталог, в котором находится.ssh
папка, имеют ограниченные разрешения. Сервер OpenSSH отклоняет ключевые операции, если разрешения на них слишком разрешительны. Это означает, что от700
всего часто отказывают.Сервер OpenSSH выводит предупреждения, если разрешения неверны, но только в качестве уровня отладки 3, поэтому они не отображаются в обычном режиме вывода или в обычном режиме отладки. Кроме того, предупреждения о разрешениях появляются только при попытке подключения. Запустите,
sshd -D -ddd -e
чтобы включить отладку третьего уровня и сделать предупреждения печати OpenSSH о разрешениях файла ключа. Обязательно остановите ваш сервер OpenSSH, прежде чем он запустится.Сервер OpenSSH будет ожидать любого входящего соединения, но не переключаться в фоновый режим, поэтому весь вывод печатается в
stdout
. Поэтому вы можете наблюдать за сервером OpenSSH, пытаясь установить соединение SSH с одного из ваших клиентов. Если вы видите предупреждения о разрешениях, как только вы пытаетесь войти в систему, попробуйте эти команды, чтобы исправить ваши разрешения:где
~
- домашний каталог пользователя, к которому вы хотите получить доступ через ssh.Перезапустите сервер OpenSSH и посмотрите, исправлена ли проблема :)
источник
Это всего лишь тест на соответствие клавиш
Чтобы получить доступ, вам нужно доказать, что вы
ssh-agent
владеете закрытым ключом, который вам не удался, и поэтому вы отклонены.Какой у тебя
ssh-agent
и где он берет свои ключи?источник