He leído la documentación de net-ssh, y todavía estoy perplejo. Puedo autenticar manualmente (usando ssh -i ...), y también colocando la clave en un archivo y usando el parámetro: keys. Sin embargo, no quiero usar el parámetro: keys, quiero usar el parámetro: key_data. ¿Alguien puede dar un ejemplo de trabajo? Por alguna razón, alimentar directamente una cadena en: key_data no funciona, y da el error: "Ni clave PUB ni clave PRIV :: error asn1 anidado". Por supuesto, busqué en Google, y básicamente me dice que me asegure de que la clave esté en formato PEM. Y por supuesto que es. ¿Algunas ideas? Puedo proporcionar información más detallada si es necesario ...Usando Ruby y net-ssh, ¿cómo me autentico usando el parámetro key_data con Net :: SSH.start?
Respuesta
Veo esta pregunta en bastante antiguo, pero voy a arrojar la respuesta de todos modos por si acaso, ya que tuve el mismo problema y acabo de resolverlo.
En el siguiente código, tenga en cuenta que la cadena que contiene la clave RSA no está sangrada en absoluto en ninguna parte. La segunda línea de la clave no tiene ningún espacio principal en ella. TextMate puso esto allí cuando pegué la clave. Lo eliminé y funcionó como un amuleto.
#!/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
estoy añadiendo un poco más de información que descubrí a mí mismo después de cavar alrededor de la biblioteca ...
Desde 2.9.2, si su intención es utilizar sólo la clave proporcionada en key_data, se también debe especificar un conjunto de claves en blanco antes de cargar su key_data, o cargará algunas claves predeterminadas.
En mi caso, uno de esos archivos de identidad que intentó cargar estaba protegido por contraseña, por lo que me pidió mi frase de contraseña, aunque mi intención no era utilizar ese archivo de identificación en absoluto.
Utilizando el ejemplo anterior, en 2.9.2, se puede obtener el mismo efecto haciendo algo como esto:
#!/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. ¿Cómo me puedo conectar a Google usando oauth con Ruby?
- 2. No puedo conectar usando claves con Ruby y net/ssh
- 3. ¿Cómo desinstalo ruby y gemas usando RVM?
- 4. ¿Cómo inicio sesión y me autentico en Postgresql después de una nueva instalación?
- 5. Me llamo usando el emulador de Android
- 6. cómo pasar xml como parámetro usando el método POST y usando jquery ajax
- 7. ¿Usando Tuples en Ruby?
- 8. Usando el violín con Java y Eclipse
- 9. ¿Cómo pasar el parámetro a un servicio web usando ksoap2?
- 10. usando ILMerge con .NET 4 bibliotecas
- 11. Usando PartCover 2.3 con .NET 4.0 runtime?
- 12. Implementando la estrategia de reconexión usando Ruby Net
- 13. ¿Cómo formatear una cadena con flotadores en Ruby usando # {variable}?
- 14. Usando un parámetro opcional de tipo System.Drawing.Color
- 15. Usando Photobucket api con Ruby on Rails
- 16. Analizando Javascript usando el código Ruby
- 17. ¿Cómo puedo combinar y ordenar varias listas usando Ruby?
- 18. ¿Cómo autentico un servicio de datos WCF?
- 19. Cómo procesar un archivo .proto usando protobuf-net
- 20. Usando CSharpCodeProvider con .net 4.5 beta
- 21. Autodetección de red usando SNMP y .NET
- 22. ZeroMQ DllNotFoundException usando .Net Bindings
- 23. Variables SQL sin parámetro con MySql Connector/Net y Dapper?
- 24. Carga de FTP usando .NET
- 25. ¿Cómo hacer la autenticación usando SOAP?
- 26. En Ruby, usando "net/http", tenemos que unirnos a la url y consultar usando un "?" ¿Nosotros mismos?
- 27. creando enumeración usando .NET CodeDom
- 28. ¿Cómo transfiero archivos usando SSH y SCP usando llamadas de Ruby?
- 29. ¿Cómo autentico una solicitud de WebClient?
- 30. ¿Cómo me autentico contra Active Directory del código del servicio web ASP.NET?
conseguir '/usr/share/ruby/2.0/socket.rb:232:in 'getaddrinfo': ninguna conversión implícita de Array en String (TypeError) ' – sixty4bit