authorized_keys имеет мой ключ, но он все равно отклонен

Я подключаюсь с машины M1 к машине M2 с помощью ssh (к тому же пользователю на другой машине). Я также должен упомянуть, что пользователь использует один и тот же ключ на обеих машинах. С аутентификацией по паролю все работает нормально; не так с аутентификацией с открытым ключом; Я убедился, что ~ / .ssh / authorized_keys на M2 имеет авторизованный ключ RSA, но все же - ssh возвращается к аутентификации по паролю. Я получаю следующее с ssh -vvv :

debug2: key: /home/joeuser/.ssh/id_rsa (0x7f42679e8200),
debug2: key: /home/joeuser/.ssh/id_dsa ((nil)),
debug2: key: /home/joeuser/.ssh/id_ecdsa ((nil)),
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/joeuser/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/joeuser/.ssh/id_dsa
debug3: no such identity: /home/joeuser/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/joeuser/.ssh/id_ecdsa
debug3: no such identity: /home/joeuser/.ssh/id_ecdsa: No such file or directory
debug2: we did not send a packet, disable method

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

Каковы потенциальные причины отказа аутентификации на основе ключей в этом случае?

Примечание: обе машины являются SLES (SuSE Linux Enterprise Server) 11.

1
задан 30 August 2020 в 11:10
2 ответа

Вы получаете ошибку

/home/joeuser/.ssh/id_dsa: No such file or directory

Убедитесь, что этот файл существует, содержит закрытый ключ, который соответствует добавленному вами общедоступному ключу, принадлежит joeuser и имеет 600 разрешений пользователя:

sudo chown joeuser /home/joeuser/.ssh/id_dsa
sudo chmod 600 /home/joeuser/.ssh/id_dsa

Вы также должны попытаться явно определить закрытый ключ следующим образом:

ssh -i ~/.ssh/id_rsa user@remote.example.com

Если вы не уверены, что это правильный ключ, я бы рекомендовал создать новый RSA пару ключей

ssh-keygen -b 4096

и добавьте содержимое открытого ключа ~ / .ssh / id_rsa.pub в файл authorized_keys удаленного сервера. Убедитесь, что вы не перезаписываете существующий закрытый ключ, который вам по-прежнему нужен для входа на другие серверы!

-2
ответ дан 4 January 2021 в 09:15

Проверьте основы:

  1. id_rsa и id_rsa.pub существуют как на M1, так и на M2
  2. id_rsa имеет разрешение 600 (т. Е. Только владелец может читать-писать) на M1 и M2
  3. В файле authorized_keys ключ вставлен в виде одной строки (без разрыва строки)
  4. Разрешение authorized_keys составляет 600
  5. Обычно разрешение для моей папки .ssh составляет 600 (по умолчанию)
  6. Проверить разрешения для каждой папки / home вплоть до .ssh
  7. Я знаю, что вы хотите использовать RSA, но попробуйте ключ DSA и посмотрите, работает ли он. Если это так, то мы обнуляем конфигурацию SSH и RSA.
1
ответ дан 4 January 2021 в 09:15

Теги

Похожие вопросы