我已经生成了一个公钥文件(id_rsa.pub)和一个私钥文件(id_rsa)并将它们放在我的~/.ssh文件夹中
据服务器管理员称,他已经将“我的密钥”添加到服务器以供访问。
有人可以澄清一下吗:
当他说他已经添加了我的“密钥”时。他添加的是公钥还是私钥?我的印象是私钥不应该分发,而应该只发送公钥。那么为什么服务器管理员要我的私钥呢?
我尝试使用 ~/.ssh/config 文件连接到服务器,其中 IdentityFile 的条目作为 id_rsa 密钥(私钥)。我收到以下错误:
Permission denied (publickey).
这是否意味着它希望我发送公钥而不是私钥?仅通过观察就能识别公钥和私钥吗?它们有特定的长度吗?
答案1
- 服务器管理员只需要公钥。
- 如果
StrictModes yes
在 sshd_config 中启用,则必须检查 id_rsa 文件的权限。 - 创建密钥时,您已指定长度。这是私钥的长度(以位为单位)。
使用该ssh -v
选项,ssh 会打印如下调试消息:
$ ssh -v user@server
# ...
# debug1: identity file /Users/you/.ssh/id_rsa type -1
# debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
# debug1: identity file /Users/you/.ssh/id_dsa type -1
# debug1: identity file /Users/you/.ssh/id_dsa-cert type -1
# ...
# debug1: Authentications that can continue: publickey
# debug1: Next authentication method: publickey
# debug1: Trying private key: /Users/you/.ssh/id_rsa
# debug1: Trying private key: /Users/you/.ssh/id_dsa
# debug1: No more authentication methods to try.
# Permission denied (publickey).
希望这可以帮助。