Мне удалось настроить вход по ssh с использованием открытых ключей для пользователей root и попытаться применить ту же логику для пользователей без полномочий root. Я тщетно пытался устранить эту проблему. Я использую centos как для моей локальной машины, так и для удаленного сервера.
Вот суть моего файла sshd_config на моем удаленном сервере,
RSAAuthentication yes
PublicKeyAuthentication yes
AuthorizedKeysFile /etc/ssh/user/authorized_keys
PasswordAuthentication no
UsePAM no
PermitRootLogin without-password
Я переместил свой файл авторизованных ключей из дома пользователя в / etc / ssh / user / authorized_keys, когда читал о шифровании домашнего каталога в centos.
Я также изменил владельца всех файлов / каталогов, связанных с пользователем без полномочий root.
Не уверен, какой шаг мне не хватает в моей конфигурации, так как эта же конфигурация очень хорошо работает для удаленного входа в систему root.
Удалите запись authorized_keys в файле конфигурации. Перезагрузите sshd. Создайте каталог .ssh в домашнем каталоге пользователя без полномочий root. Поместите ключ в файл с именем ~ / .ssh / authorized keys. Сделайте каталог 0700 и файл authorized_keys 0644. Сделайте то же самое для пользователя root.
Для ясности: вам нужен файл PUBLIC key (например, ~ / .ssh / id_rsa.pub) с исходного компьютера, чтобы он находился в ~ / .ssh / authorized_keys на конечном компьютере.
Если вы скопируете ~ / .ssh / id_rsa, это не сработает. Современный sshd также будет настаивать на том, чтобы ~ / .ssh был в режиме 700, а ~ / .ssh / authorized_keys был в режиме 600 на целевой машине.
Кроме того: если можете, используйте sudo вместо того, чтобы разрешать вход в систему root через ssh.