Estoy trabajando en un pequeño script Ruby que pagará y sincronizará una sucursal en dos servidores diferentes. Estoy tratando de averiguar cómo pasar una contraseña a git al tirar. Ahora mismo tengo
Net::SSH.start(host, user, password: password) do |ssh| # other code.... result = ssh.exec!("git pull") # results in Enter passphrase for key '/root/.ssh/id_rsa' end
Después de ejecutar el comando git, se le solicita la contraseña de la clave.
¿Es posible pasar eso con un comando git? ¿O hay otra forma de hacerlo dentro de Ruby?
Ladocumentación de net-ssh menciona el método Net::SSH.start()
acepta un argumento de frase de contraseña:
passphrase
la frase de contraseña que se utilizará al cargar una clave privada (el valor predeterminado es nulo, sin frase de contraseña)
Entonces, si puede obtener la frase de contraseña (de un archivo o variable de entorno) en su programa, puede agregar ese argumento al método Net::SSH.start()
.
Sin embargo, una vez que esté conectado, es mejor:
git pull
, ya que puede registrar de una vez por todas la contraseña (no la frase de contraseña) asociada con esa URL HTTPS en un almacenamiento de credenciales.Usar una frase de contraseña significa agregar a su sesión SSH:
Eso parece bastante engorroso.