使用私钥进行 SSH 时会要求我输入密码

使用私钥进行 SSH 时会要求我输入密码

这与公钥授权无关,我知道如何以这种方式复制公钥和 ssh。这是关于私钥的。

所以我刚刚创建了 2 个虚拟机,它们通过 vagrant 专用网络连接。其中一个称为 server01,另一个称为 server02。

我在“server01”上创建了用户“01”,在“server02”上创建了用户“02”。

ssh-keygen对他们两个都有,所以他们都有id_rsaid_rsa.pub

我将 01 的内容id_rsa(私钥)复制到01key02 机器中名为的文件中。

然后我使用以下命令从 02 ssh 到 01: 它要求我输入密码......ssh -i 01key [email protected]

为什么?使用私钥连接的全部意义不就是不使用密码吗?我在 AWS 上创建了一个 Linux 服务器,它为我提供了该特定实例的私钥,并且我ssh -I key无需询问密码就可以进入它,那么我做错了什么?

我检查了01key文件的权限,它们是600。

编辑:所有答案都是无关紧要的。我知道如何使用公钥通过 ssh 连接,但这不是我想要的。

我在 AWS 上创建了一个 Linux 实例并创建了一个 ssh 密钥对,然后它只给了我私钥,我可以用它来连接到该 AWS 实例。我就是这个意思。

答案1

我将 01 的 id_rsa(私钥)的内容复制到 02 机器上名为 01key 的文件中。

公钥身份验证不是这样工作的。您必须复制 user01 的民众关键

~user01/.ssh/authorized_keys

在服务器02上。通过以下命令可以更轻松地完成此操作:

ssh-copy-id user01@server02

然后我从 02 ssh 到 01 ...

恰恰相反,通过这个设置你可以 sshserver01 到 server02 无密码。

...使用以下命令:ssh -I 01key[电子邮件受保护]

-I标志指定 PKCS#11 共享库。您可能想-i指定身份。无论如何,这是没有必要的;做就是了

ssh user01@server02

答案2

要将公钥复制到服务器,请使用:

ssh-copy-id user2@server

它将复制(在当前服务器上):

/home/user1/.ssh/id_rsa.pub

进入文件(在指定服务器上):

/home/user2/.ssh/authorized_keys

这也可以通过附加公钥来手动完成:

cat /home/user1/.ssh/id_pub.rsa | ssh user2@server "cat >> /home/user2/.ssh/authorized_keys"

  • cat /home/user1/.ssh/id_pub.rsa通过管道传输 user1 公钥的内容

  • ssh user2@server "[cmd]"以user2在指定服务器上执行指定命令

  • cat >> /home/user2/.ssh/authorized_keys获取管道数据并附加到文件

答案3

您不应该复制私钥。这是id_rsa.pub你想要的,通常你会把它放进去~02/.ssh/authorized_keys

相关内容