我读过的净SSH的文档,我仍然感到困惑。我可以手动进行身份验证(使用ssh -i ...),也可以将密钥放在文件中并使用:keys参数。但是,我不想使用:keys参数,我想使用:key_data参数。任何人都可以举个实例吗?出于某种原因,直接将一个字符串提供给:key_data不起作用,并且出现错误:“既没有PUB键也没有PRIV键::嵌套asn1错误”。当然我用Google搜索了一下,它基本上告诉我要确保密钥是PEM格式。而且,当然是。有任何想法吗?如果需要,我可以提供更详细的信息...使用Ruby和净-SSH,我怎么使用身份验证与净:: SSH.start的key_data参数?
5
A
回答
9
我看到这个问题在很老,但我要去反正答案扔给你以防万一,因为我有同样的问题,我只是解决了它。
在下面的代码请注意,包含RSA密钥字符串不是缩进在所有的任何地方。密钥的第二行没有任何前导空间。 TextMate把它放在那里,当我把钥匙粘贴进去时,我把它移开了,它像一个魅力一样工作。
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
HOST = '172.20.0.31'
USER = 'root'
KEYS = [ "-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAqccvUza8FCinI4X8HSiXwIqQN6TGvcNBJnjPqGJxlstq1IfU
kFa3S9eJl+CBkyjfvJ5ggdLN0S2EuGWwc/bdE3LKOWX8F15tFP0=
-----END RSA PRIVATE KEY-----" ]
Net::SSH.start(HOST, USER, :key_data => KEYS, :keys_only => TRUE) do|ssh|
result = ssh.exec!('ls')
puts result
end
6
我加入,我在图书馆周围挖后发现自己一点点的详细信息...
自2.9.2,如果你的目的是使用只在key_data提供的钥匙,你在加载key_data之前还必须指定一组空白键,否则它将加载一些默认键。
在我的情况下,它试图加载的身份文件之一是密码保护,所以它要求我输入密码,尽管我的意图是根本不使用该识别文件。
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
HOST = '172.20.0.31'
USER = 'root'
KEYS = [ "-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAqccvUza8FCinI4X8HSiXwIqQN6TGvcNBJnjPqGJxlstq1IfU
kFa3S9eJl+CBkyjfvJ5ggdLN0S2EuGWwc/bdE3LKOWX8F15tFP0=
-----END RSA PRIVATE KEY-----" ]
Net::SSH.start(HOST, USER, :keys => [], :key_data => KEYS, :keys_only => TRUE) do|ssh|
result = ssh.exec!('ls')
puts result
end
相关问题
- 1. 净System.Net.HttpWebRequest和身份验证Cookie
- 2. Capistrano的净:: SSH.start自嘲watning
- 3. 我怎么能调用验证身份验证使用REST类型的
- 4. 无法安装的厨师,与净净的ssh-SSH-多净SSH网关
- 5. 须藤通过净:: SSH在Ruby中
- 6. 使用asp.net身份验证与自定义身份验证
- 7. 我怎样才能使身份验证的请求使用AJAX
- 8. WinHTTP:使用代理与身份验证
- 9. 我可以使用Windows身份验证与ASP.Net身份?
- 10. 使用HTTP身份验证
- 11. 如何使用github API使用ssh身份验证?
- 12. 使用Cygwin无法使用GSSAPI(Kerberos身份验证方法)ssh?
- 13. 净Owin身份验证失败......在一个奇怪的方式
- 14. 使用Ruby对Azure进行身份验证(HTTP Header身份验证)?
- 15. API身份验证和OAuth2的使用
- 16. 使用Windows身份验证与PHP?
- 17. 使用身份验证与代理
- 18. 身份验证:JWT使用与会话
- 19. 使用baum/baum与laravel身份验证
- 20. 与ASP.Net使用Windows身份验证AJAX
- 21. Webapi身份验证,仅使用客户端身份验证
- 22. Git SSH身份验证
- 23. Mercurial ssh身份验证whenpush
- 24. Xcode Bot SSH身份验证
- 25. Pydrive身份验证使用
- 26. 使用LDAPS身份验证
- 27. 验证少数方法参数的干净方法是什么?
- 28. Multi_Curl使用身份验证
- 29. 身份验证使用C#
- 30. check_auth_continue:504 5.7.4无法识别身份验证类型(净:: SMTPSyntaxError)
越来越'/usr/share/ruby/2.0/socket.rb:232:in:
使用上面的例子,在2.9.2,你可以做这样的事情得到相同的效果'getaddrinfo':没有将数组隐式转换为String(TypeError)' – sixty4bit