Estoy trabajando en una aplicación Ruby/Rack que necesita generar pares de claves SSH. Por mucho que me gustaría llamar al ssh-keygen
desde la aplicación, no puedo porque está diseñado para ejecutarse en Heroku y no admiten llamar a ese comando.Generar pares de claves SSH (privado/público) sin ssh-keygen
he sido capaz de obtener las claves privadas/públicas RSA utilizando OpenSSL en la biblioteca estándar de Ruby haciendo lo siguiente:
key = OpenSSL::PKey::RSA.generate(2048)
# => -----BEGIN RSA PRIVATE KEY----- ....
key.public_key
# => -----BEGIN RSA PUBLIC KEY----- ....
Desafortunadamente una clave pública RSA y una clave pública SSH no es la misma cosa, a pesar de que se pueden generar a partir de la misma clave RSA. Una clave pública SSH se ve algo como lo siguiente:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwA.....
¿Es posible generar claves SSH o convertir las claves RSA a SSH en Ruby sin utilizar ssh-keygen
?
OpenSSL :: PKey :: RSA # to_pem parece proporcionar solo una salida de cadena, no la convierte al formato de clave pública SSH. – bensie
También intenté simplemente anteponer el "ssh-rsa" y anexar la sintaxis del comentario a la cadena, pero no es lo mismo y no se reconoce como una clave pública válida. – bensie