基于 SSH pem/私钥的登录错误?

基于 SSH pem/私钥的登录错误?

ec2-user我刚刚使用 Amazon Linux 2 操作系统创建了一个 ec2 实例,然后使用 login:和关联的私钥登录到系统。接下来,我创建了一个新用户x并将.ssh/authorized_keys文件从ec2-user主目录复制到x用户主目录。最后,我将文件的所有权更改authorized_keysx.

sudo ls -ald /home/x/.ssh
drwxrwxr-x 2 x x 29 Sep 18 16:42 /home/x/.ssh

sudo ls -al /home/x/.ssh/authorized_keys
-rw------- 1 x x 387 Sep 18 16:42 /home/x/.ssh/authorized_keys

x现在,当我使用相同的私钥以用户身份登录时,我收到如下错误:

ssh -i /some/path/aws/privatekey.pem [email protected]
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

如何解决这个问题才能成功登录?

(该authorized_keys文件是否也包含任何用户信息。)

类似的问题没有帮助:ssh:权限被拒绝(publickey、gssapi-with-mic)

答案1

drwxrwxr-x 2 x x 29 Sep 18 16:42 /home/x/.ssh

/home/x/.ssh具有组写入权限集,因此理论上组的另一个成员x可能能够篡改目录的内容。因此,出于谨慎考虑,sshd将忽略该authorized_keys文件。

手册sshd(8)页说:

〜/.ssh/authorized_keys

如果其他用户可写入该文件、~/.ssh 目录或用户的主目录,则该文件可能会被未经授权的用户修改或替换。在这种情况下,sshd 将不允许使用它,除非 StrictModes 选项已设置为“no”。

要解决这个问题:

chmod go-w / /home /home/x /home/x/.ssh

另外,/当然/home应该由 root 拥有。

用户可以授予其他人写入权限其他子目录他们的主目录,但主目录本身和~/.ssh/子目录是安全敏感的,并且应该始终仅对拥有该目录的用户是可写的。主目录中有许多文件(例如~/.profile~/.bashrc和类似的登录脚本),如果它们可供其他人写入,则可能会被用于邪恶目的。

在 SSH 开发之前,旧的/ /工具~/.rhosts使用的文件具有类似的保护要求 - 如果没有得到充分的保护,同样会被忽略。rshrloginrcp

相关内容