Every time I want to
pull from the terminal (in Linux) I have to enter a password. How do I remove this so that it pulls and/or pushes without the password?
Generate a private/public key pair for password-less authentication.
For Linux, your keys are stored in
If you already have files in
~/.ssh that's named
id_rsa.pub, then you already have a key pair. Append the contents of your public key (that's
id_rsa.pub) to the Git repository's ~/.ssh/authorized_keys file.
$ scp ~/.ssh/id_rsa.pub email@example.com:id_rsa.tmp $ ssh firstname.lastname@example.org $ cat id_rsa.tmp >> .ssh/authorized_keys
If you don't have the key pair, generate one with
$ ssh-keygen -t rsa
Read this for further instructions: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/
git config credential.helper store
This will store your credentials in a folder inside root. You need to run
git push after this command and give the username and password for the first time. After this, it will not prompt for username and password. Details at https://git-scm.com/docs/git-credential-store
As 0xc0de wrote in a comment, this will store the password unencrypted!
The default caching time is 900 seconds (or 15 minutes), after which Git will prompt you to enter your username and password again. You can change it as follows (1800 seconds = 30 minutes or 3600 seconds = 1hour). ($ represents the shell prompt as a normal non-elevated user)
git config --global credential.helper 'cache --timeout=18000'
git config --global credential.helper 'cache --timeout=36000'