我已经使用以下方法生成了私钥和公钥对 ssh 密钥例如这个。我无法访问远程服务器,因此我将公钥发送给了在那里拥有帐户的人。
公钥放在目录中~/.ssh/authorized_keys
。现在我想使用我的私钥访问:
ssh -i ./authorized_keys/id_rsa usr@location
或者
ssh usr@location
请求usr
密码,但不选择公钥。我该如何解决这个问题?详细模式表示它可以使用该密钥,但它没有使用它(使用第一个选项的输出尾部)
...
debug1: Next authentication method: publickey
debug1: Offering public key: .ssh/authorized_keys/id_rsa RSA SHA256:XXX/XXXXXXXX explicit agent
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: password
答案1
公钥已放置在目录中
~/.ssh/authorized_keys
。
这不应该是一个目录。在服务器端,它必须是文件每行包含一个公钥。在客户端,它没有特殊含义,但两个月后,它会让你完全困惑。
请求
usr
密码,但不选择公钥。我该如何解决这个问题?详细模式表示它可以使用该密钥,但它没有使用它(使用第一个选项的输出尾部)
最有可能的是,密钥未被使用,因为服务器还没有接受。
由于人们通常拥有多个密钥对,因此 SSH 公钥认证分为两个步骤:首先,客户端提供其民众密钥(即,它会逐一提供您的所有密钥),并且如果服务器发现该密钥可接受然后客户端发送使用私钥制作的“证明”签名。
如果在服务器的文件中找不到公钥authorized_keys
,它会拒绝该提议,客户端可以继续提供另一个。(这样,拥有 10 个密钥的人就不需要一次输入 10 个解密密码。)