gitputtykeychainssh-keyspageant

How to convert SSH keypairs generated using PuTTYgen (Windows) into key-pairs used by ssh-agent and Keychain (Linux)


I've generated key pairs using PuTTYgen and been logging in using Pageant, so that I have to enter my pass-phrase only once when my system boots.

How do I achieve this in Linux? I've heard of keychain but I hear that it uses a different key pair format - I don't want to change my Windows keys and it would be nice if I could seamlessly connect in the same manner in both Windows and Linux.


Solution

  • puttygen supports exporting your private key to an OpenSSH compatible format. You can then use OpenSSH tools to recreate the public key.

    1. Open PuttyGen
    2. Click Load
    3. Load your private key
    4. Go to Conversions->Export OpenSSH and export your private key
    5. Copy your private key to ~/.ssh/id_dsa (or id_rsa).
    6. Create the RFC 4716 version of the public key using ssh-keygen

      ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
      
    7. Convert the RFC 4716 version of the public key to the OpenSSH format:

      ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
      

    See this and this for more information.