Я следовал этому руководству и аутентификация ключа отлично работала для root. но когда я создал пользователя xxx и добавил другой ключ в authorized_keys и попытался войти с помощью putty, где была показана ошибка "Сервер отказался принять наш ключ". Я изменил .ssh/authorized_keys на /etc/ssh/keys/authorized_keys с chmod 700 для ключей и chomd 600 для authorized_keys, так как я нашел несколько ответов в сети по этому вопросу. Я даже пытался поменять ключи местами - ничего не помогло! только root может войти в систему, используя ключи.
В файле authorized_keys:
ssh-rsa pub***key rsa-key-20140424
ssh-rsa pub***key rsa-key-20140426
В журнале сервера ничего не показано о принятой или отклонённой аутентификации пользователя xxx.
Putty Event log
2014-04-26 13:28:02 Reading private key file "C:\mykey.ppk"
2014-04-26 13:28:04 Offered public key
2014-04-26 13:28:04 Server refused our key
Server OS : centos 6.5
Похоже, вы пытаетесь добавить ключ пользователя в файл root authorized_keys
вместо файла пользователей authorized_keys
.
Для пояснения:
корневой ключ должен быть в /root/.ssh/authorized_keys
ключ пользователя должен быть в /home/USERNAME/.ssh/authorized_keys
Это можно хранить ключи в / etc / ssh, как вы предложили, но не так, как вы это делаете. Обычно это делается, когда домашний каталог пользователя зашифрован. Чтобы это сработало, вам необходимо убедиться, что выполнено следующее:
# mkdir /etc/ssh/USERNAME
# chmod 755 /etc/ssh/USERNAME
# chown USERNAME /etc/ssh/USERNAME
# touch /etc/ssh/USERNAME/authorized_keys
# chmod 644 /etc/ssh/USERNAME/authorized_keys
# chown USERNAME /etc/ssh/USERNAME/authorized_keys
# cat /home/USERNAME/.ssh/authorized_keys > /etc/ssh/USERNAME/authorized_keys
# echo "AuthorizedKeysFile /etc/ssh/%u/authorized_keys" >> /etc/ssh/sshd_config
Примечание. Возможно, вы захотите отредактировать / etc / ssh / sshd_config вместо того, чтобы просто добавлять его в конец, поскольку возможно, что у вас уже есть набор AuthorizedKeysFile
.