Setting up git and ssh and using ssh-agent to store password with msysgit on Windows

Ok, this is a pretty specific question, but I had some challenges figuring it out so I figured I would share my experience so if anyone else runs into the same problems, they can fix it a little faster.

Goal: use ssh-agent and msysgit to -as securely as possible- store ssh key password to prevent having to type it for every git command involving remote repository

  • Cloning git repository from Windows with CopSSH and MSysGit
  • how to make emacs + egg (git) work with remote files (accessed via ssh)
  • Permission denied (public key): Multiple Repositories and RSA Keys Using Github
  • Cannot clone git repo
  • Issue cloning GitHub private repo onto remote server
  • github uses Smart HTTP
  • GitLab requires git@localhost password to push to a repo
  • How to close/copy a specific git branch contents to a folder on another server using ssh
  • 2 Solutions collect form web for “Setting up git and ssh and using ssh-agent to store password with msysgit on Windows”

    1) Create a .bashrc file in the user directory (default windows C:\Users\UserName\)
    NOTES: if you think you can just right click in the directory in Windows Explorer and create a file called .bashrc you (and me) are sadly mistaken, you’ll get an error from Explorer preventing you from creating a file without a name. So, I did this from my git bash by executing echo 'blah' >> .bashrc just so I could get the file to edit in notepad to put the required code in it.

    2) Edit .bashrc in a text editor and put the code found here: https://help.github.com/articles/working-with-ssh-key-passphrases#platform-windows under “Auto-launching ssh-agent on msysgit”

    3) restart bash.

    TROUBLE SHOOTING: ps will show all running processes. I found that when I was testing this out, it wasn’t prompting me to put in my password when bash was started. When I executed ps I noticed many ssh-agents running. After killing them all, I was able to restart git bash and everything worked. Identifying this problem took me the longest.

    What about to include pass in git repo-url:

    git clone http://username:password@example.com/git/Project.git .
    

    It’s not very safe solution, but works 🙂

    Git Baby is a git and github fan, let's start git clone.