我已经生成了 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 程序)发送一个质询,即一个由用户公钥加密的随机数。只有使用正确的私钥才能解密质询。然后,用户的客户端使用私钥解密质询,证明他/她知道私钥,但不会将其泄露给服务器。