通过 ssh 在 Ruby 中通过密钥进行身份验证:无法解析 PKey:没有起始行

Authentication by key in Ruby via ssh: Could not parse PKey: no start line

我正在尝试使用 ssh 密钥通过 ssh 连接到服务器。记录了一个错误,它还要求我输入密码,我不应该被要求输入密码,因为我使用的是密钥 authen-ion,我的目的是摆脱必须输入密码的麻烦:

 ERROR -- net.ssh.authentication.key_manager[2b02154b7610]: could not load private key file `/home/me/.ssh/id_rsa.pub': ArgumentError (Could not parse PKey: no start line)

我的代码:

Net::SSH.start(ip_item, "root", host_key: "ssh-rsa", keys: ["~/.ssh/id_rsa.pub"], verbose: :debug) do |ssh|

这是一个错误吗?为什么说 "private"?

密钥存在。

我能够通过终端连接到服务器而无需密码,并且它被正确地添加到服务器的已知主机列表中,因为我能够连接到它。

服务器上的 cat ~/.ssh/authorized_keys 也显示了我的 public 密钥。

您需要在连接到主机时提供私钥的路径,而不是 public 密钥。

尝试将代码中的“~/.ssh/id_rsa.pub”更改为“~/.ssh/id_rsa”。应该有帮助。