我正在尝试配置ssh
服务器,以便它只接受密钥(因此禁用密码请求)。
我已经使用 PuTTY(在 Windows 下)生成了公钥和私钥。我目前有两个用户,root 和 amministratore。我不希望 root 能够使用 ssh 登录,只有 amministratore 可以。
到目前为止我修改并完成的内容是:
/etc/ssh/sshd_config
- 看 https://pastebin.com/hp0EQ5hGroot@autoapi:~# ls -ld ~/.ssh drwx------ 2 amministratore amministratore 4096 5 月 5 日 16:22 /home/amministratore/.ssh
amministratore@autoapi:~/.ssh$ ls -l 总计 4 -rw-r--r-- 1 amministratore amministratore 398 5 月 5 日 16:08authorized_keys
root@autoapi:~/.ssh# ls 授权密钥
显然,我已经删除了中间的字符。
root@autoapi:~/.ssh# catauthorized_keys ssh-rsa AAAA.....KKQ== rsa-key-20190504
我忘记了什么?
答案1
当您使用 SSH 连接时,客户端首先检查服务器可接受的内容。也就是说,它询问特定的密钥是否可以接受前它实际上尝试登录。这意味着如果某个特定密钥不可接受,客户端甚至不会尝试使用它。
根据您的证据,最有可能的情况是您的authorized_keys
文件设置为公开可读,并且您的配置指定了默认值# StrictModes yes
。它还指定# PasswordAuthentication yes
.因此,密钥身份验证被服务器拒绝,而是要求您输入密码。为了解决这个问题,需要改变两件事。
1 更改权限authorized_keys
:
chmod go-rwx ~/.ssh/authorized_keys
2 禁用密码验证/etc/ssh/sshd_config
:
PasswordAuthentication no
答案2
您已正确将配置设置为不允许 root 登录。
看来你需要将authorized_keys
amministratore文件的权限设置为600。