SSH Agent Proxy Between Cygwin and Pageant
Categories:

Charade ssh-agent proxy to Pageant (PuTTY)

Allows ssh in a cygwin session to use SSH keys loaded in Pageant, replacing functionality of the ssh-agent. Allows you to maintain one copy of SSH keys that are used by both PuTTY and ssh.

Main page for charade: http://github.com/wesleyd/charade.

  1. Install cygwin packages to compile: make, gcc, git
  2. Clone the charade git repository to get the source:
    git clone http://github.com/wesleyd/charade.git
  3. Build executable:
    cd charade && make
  4. Install executable into personal bin/ directory:
    cp charade.exe ~/bin
  5. Add to ~/.bash_profile:
    SSHAGENT=~/bin/charade
    SSHAGENTARGS="-s"
    if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
            eval `$SSHAGENT $SSHAGENTARGS`
            trap "kill $SSH_AGENT_PID" 0
    fi

    NOTE: The .bash_profile setup isn't the best as you get a new charade process with each window. I don't care much about that since I don't have too many windows open, and as it's a proxy to Pageant which holds the actual keys, you don't have to add the private key to each charade instance. Also, when you close the Cygwin window, the charade process for that window will be killed.

  6. Open a new Cygwin window and check for env vars:
    env | grep SSH
    There should be two vars: SSH_AGENT_PID and SSH_AUTH_SOCK
  7. Move or delete your cygwin .ssh folder and then try to login to a server with the public key installed. You should be able to login with no password using the Pageant key.