Мой пользователь root может войти в систему, используя ssh, но по какой-то причине мой newuser не может войти в систему, используя тот же ключ. Я использую шпаклевку, и это сообщения, которые я получил.
Консольное сообщение: Using username 'newuser'. Server refused our key
Putty Message: Disconnected: No supported authentication methods available (server sent: publickey)
Я также попытался войти в свою учетную запись root и переключить пользователей. Я использовал ssh newuser@my.ip.address
и не повезло. Я получил это сообщение, Permission denied (publickey).
На своем сервере я создал здесь файл ключа /home/newuser/.ssh/authorized_keys
и вставил свой SSH-ключ в этот файл. Кроме того, я просмотрел на своем компьютере с Windows и вложил файл в замазку.
- обновление - Когда я ввожу это namei -l /home/newuser/.ssh/authorized_keys
, это мой вывод.
f: /home/newuser/.ssh/authorized_keys
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x newuser newuser newuser
drwx------ newuser newuser .ssh
-rw------- root root authorized_keys
Я подозреваю, что проблема может быть в том, что ваш файл author_keys принадлежит root:root
, и я считаю, что он должен принадлежать имени пользователя, который будет подключаться (username:username
).
SSH проверяет владение и разрешения для папки .ssh
и файлов в ней по соображениям безопасности. Хотя не каждое отклонение от обычного владения и прав доступа может привести к дыре в безопасности, есть несколько способов создать дыру в безопасности таким образом, и SSH ошибается на стороне педантизма. Более того, хотя демон SSH-сервера должен работать от имени пользователя root, возможно, он разветвляется и сбрасывается в учетную запись обычного пользователя до того, как начинает проверять ключ, а это означает, что файл author_keys для него не будет виден.