Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How can I pass a password to git in a ruby script

I’m working on a small ruby script that will checkout and sync a branch on two different servers. I’m trying to figure out how to pass a password to git when pulling. Right now I have

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

After running the git command it get a prompt for the key passphrase.

Is it possible to pass that in with a git command? Or is there another way to do that within ruby?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

The net-ssh documetation does mention the method Net::SSH.start() accepts a passphrase argument:

passphrase
the passphrase to use when loading a private key (default is nil, for no passphrase)

So if you can get the passphrase (from a file or environment variable) in your program, you can add that argument to the Net::SSH.start() method.

Once you are connected, however, it is best to:

  • use a passphrase-less key for Git SSH URL
  • or use an HTTPS URL instead, for git pull commands, since you can register once and for all the password (not passphrase) associated with that HTTPS URL in a credential storage.

Using a passphrase means adding to your SSH session:

That seems quite cumbersome.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading