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

  • How to enable GIT support in TFS 2012 Update 2 (self-hosted)
  • Does git “dirty” mean files not staged, or not committed? (glossary conflict)
  • Splitting one Git repository into many - branches become forks
  • Git ERROR: Permission to user1/repoA.git denied to user2
  • Bitbucket ssh public denied
  • git: How do I get the latest version of my code?
  • The for Mac crashes every time, if a local repository is loaded
  • checkout the first commit in the history containing a given String
  • gitosis vs gitolite?
  • How does git status work internally?
  • Phantom file in github commit
  • oh-my-zsh slow, but only for certain Git repo
  • 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: 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 .

    It’s not very safe solution, but works 🙂

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