I think Sé cómo crear claves RSA cifradas personalizadas, pero ¿cómo puedo leer una cifrada como ssh-keygen?Abrir una clave privada RSA de Ruby
Sé que puedo hacer esto:
OpenSSL::PKey::RSA.new(File.read('private_key'))
Pero entonces OpenSSL me pide la contraseña ... ¿Cómo puedo pasar a OpenSSL como parámetro?
Y, ¿cómo puedo crear uno compatible con los generados por ssh-keygen?
que hacer algo como esto para crear las claves privadas cifradas:
pass = '123456'
key = OpenSSL::PKey::RSA.new(1024)
key = "0000000000000000#{key.to_der}"
c = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
c.encrypt
c.key = Digest::SHA1.hexdigest(pass).unpack('a2' * 32).map {|x| x.hex}.pack('c' * 32)
c.iv = iv
encrypted_key = c.update(key)
encrypted_key << c.final
Además, las claves generadas por OpenSSL :: :: PKey RSA.new (1024) (sin cifrado), no funcionan cuando Intente iniciar sesión sin contraseña (es decir, copie la clave pública en el servidor y la privada para iniciar sesión).
Además, cuando abro un archivo ssh-keygen a través de OpenSSL y luego reviso su contenido, parece que tiene caracteres adicionales al principio y al final de la clave. ¿Esto es normal?
Realmente no entiendo algunas de estas cosas de seguridad, pero estoy tratando de aprender. ¿Qué es lo que estoy haciendo mal?