你好,我从来没有在这里发布过问题,但是,我正在尝试在不输入密码的情况下访问 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 不同的身份文件
答案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 密钥的单个统一文件。