使用默认的 id_rsa.pub 进行 SSH 访问 AWS,但不能使用通过 ssh-keygen 生成的密钥进行访问

使用默认的 id_rsa.pub 进行 SSH 访问 AWS,但不能使用通过 ssh-keygen 生成的密钥进行访问

你好,我从来没有在这里发布过问题,但是,我正在尝试在不输入密码的情况下访问 AWS 实例,但遇到了一些问题。

$ ssh -i ~/.ssh/id_rsa_aws.pub ubuntu@ipaddresshere

但是,尽管我使用以下命令生成了密钥,但它仍提示我输入密码,并且在提示时我将密码字段留空。

$ ssh-keygen -t rsa -b 1024

当我访问服务器时,如果我在密码字段中输入空白,则会被拒绝权限,如果我输入密码,它会提示我重新输入一个值,所以我相信它接受空白密码但拒绝密钥。

我已将内容存储在id_rsa_aws.pub其中authorizedkeys2,并且我相信所有权限都设置正确。

为了进行更多的测试,我使用了之前为另一个实例生成的另一个密钥,只需调用id_rsa.pub并复制该密钥authorizedkeys2即可。

密钥的权限是相同的。

如果另一个密钥有效,为什么我生成的密钥却无效?

我大致按照以下链接操作,唯一的区别是使用与 id_rsa.pub 不同的身份文件

https://forums.aws.amazon.com/message.jspa?messageID=211493

答案1

好的,你这里有几个问题。我会一一解决它们。

$ ssh -i ~/.ssh/id_rsa_aws.pub ubuntu@ipaddresshere

第一个问题就在这里。你的身份文件不是公钥文件。你的身份文件是你的私人的密钥文件。因此,您运行的命令应该是:

$ ssh -i ~/.ssh/id_rsa_aws ubuntu@ipaddresshere

我已将 id_rsa_aws.pub 的内容存储在 authorizedkeys2 中,并且我相信所有权限都已正确设置。

第二个问题在这里。authorizedkeys2不是您的 sshd 寻找公钥文件的地方。我想您可能指的是authorized_keys2(请注意下划线),但即使那也不是正确的位置(尽管它可能有效)。该authorized_keys2文件已被弃用了很长一段时间,取而代之的是~/.ssh/authorized_keys包含 RSA 和 DSA 密钥的单个统一文件。

相关内容