SSH 需要密码,但我已经生成了 rsa 密钥

SSH 需要密码,但我已经生成了 rsa 密钥

我已经生成了 rsa 密钥并将其添加到服务器的 ~/.ssh/authored_keys。

为什么我使用 ssh 服务器时需要输入密码?

我的本地名称是 A,服务器名称是 B(根用户)。我需要创建一个名为 A 的用户吗?

答案1

尽管问题并不完全清楚,但我怀疑答案是你为错误的用户授权了密钥。

当你说你添加了密钥时,~/.ssh/authorized_keys这意味着密钥仅对登录有效用户(无论它是什么)。因此,如果您以 身份登录,则userA意味着仅当您尝试再次以 身份登录时才会使用该密钥userA,但如果您尝试以 身份登录,则不会使用该密钥userB

默认情况下,ssh 将以与本地用户同名的远程用户身份登录。因此,如果您以 身份登录本地系统userA,ssh 将尝试以 身份登录远程系统userA。如果您需要以 身份登录,则userB可以使用而不是。ssh [email protected]ssh my.server.net

答案2

您需要密码来解锁生成的密钥。只有第一次使用 SSH 时才需要输入密码。之后对于特定会话,无需输入密码。

(摘自手册页)

当用户登录时,ssh 程序会告诉服务器要使用哪个密钥对进行身份验证。服务器检查此密钥是否允许,如果允许,则向用户(实际上是代表用户运行的 ssh 程序)发送一个质询,即一个由用户公钥加密的随机数。只有使用正确的私钥才能解密质询。然后,用户的客户端使用私钥解密质询,证明他/她知道私钥,但不会将其泄露给服务器。

相关内容