服务器不要求密钥进行身份验证

服务器不要求密钥进行身份验证

我正在尝试配置ssh服务器,以便它只接受密钥(因此禁用密码请求)。

我已经使用 PuTTY(在 Windows 下)生成了公钥和私钥。我目前有两个用户,root 和 amministratore。我不希望 root 能够使用 ssh 登录,只有 amministratore 可以。

到目前为止我修改并完成的内容是:

  1. /etc/ssh/sshd_config- 看 https://pastebin.com/hp0EQ5hG

  2. root@autoapi:~# ls -ld ~/.ssh
     
    drwx------ 2 amministratore amministratore 4096 5 月 5 日 16:22 /home/amministratore/.ssh
  3. amministratore@autoapi:~/.ssh$ ls -l
     
    总计 4
    -rw-r--r-- 1 amministratore amministratore 398 5 月 5 日 16:08authorized_keys
  4. root@autoapi:~/.ssh# ls
    授权密钥
  5. 显然,我已经删除了中间的字符。

    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_keysamministratore文件的权限设置为600。

相关内容