通过ssh通过Ruby进行密钥验证:无法解析PKey:无起始行

时间:2016-06-29 06:33:38

标签: ruby ssh rsa

我尝试使用ssh密钥连接到使用ssh的服务器。我记录了一个错误,它还要求我提供密码,我不应该被要求提供密码,因为我正在使用密钥验证,我的意图是不必输入密码:

 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|

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

密钥存在。

我能够在没有密码的情况下通过终端连接到服务器,并且由于我能够连接到服务器,因此它已正确添加到服务器的已知主机列表中。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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