我尝试使用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
也显示我的公钥。
答案 0 :(得分:0)
连接到主机时,您需要提供私钥的路径,而不是公钥。
答案 1 :(得分:0)
尝试在代码中将“〜/ .ssh / id_rsa.pub”更改为“〜/ .ssh / id_rsa”。应该会有帮助。