I have put together a step-by-step guide to get Git setup for windows using PuTTY's Plink application for SSH authentication.
Follow along below:
Install putty.zip which is available at the PuTTY Download Page or you can download individually.
PuTTY: putty.exe (or by FTP)
The SSH and Telnet client itself.
Plink: plink.exe (or by FTP)
A command-line interface to the PuTTY back ends.
Pageant: pageant.exe (or by FTP)
An SSH authentication agent for PuTTY, PSCP, PSFTP, and Plink.
PuTTYgen: puttygen.exe (or by FTP)
An RSA and DSA key generation utility.
Generate RSA and PPK Keys
- Using the Git Bash, use
ssh-keygen to generate a pair of RSA public/private keys. More information on how to do this can be found on the official Generating SSH keys article.
- In PuTTYgen, import your existing
~/.ssh/id_rsa (private) key, via Conversions → Import key.
- Save the imported key via the Save private key button as
You should now have the following keys in your
id_rsa: Private (OpenSSH) RSA key
id_rsa.pub: Public (OpenSSH) RSA key
id_rsa.ppk: Private (PuTTY) key
Install Git for Windows.
Make sure that you choose to use Plink.
Note: If you have already installed Git, you can just run the installer again and set Plink to be your default SSH application.
Set your Environment paths.
- In Control Panel, navigate to the System view.
- Choose Advanced system settings.
- In the System Properties window, click the Advanced tab.
- Click Environment variables….
Add the following System variables (if not already set):
C:\Program Files (x86)\PuTTY\plink.exe
Append the Git binary directory to the system path.
Open Pageant and load the ppk key located at
Note: Once Pageant has started, you can click on its icon in the system tray located in the taskbar, next to the time, on the right.
Open Putty and connect to test your connection via SSH and add the server's key as a known host.
email@example.com:22 (or via ssh-agent
ssh -Tv firstname.lastname@example.org)
email@example.com:22 (or via ssh-agent
ssh -Tv firstname.lastname@example.org)
Start Git Bash.
You should be able to push and pull from your remote host without entering a password each time.
You can place a shortcut in your startup directory to auto-load your key each time you log into your Windows account.
Via Batch Script
This idea was inspired by an answer to this question:
Super User: How to make a shortcut from CMD?.
REM | Pageant Autoload.bat |
REM | |
REM | This script creates a shortcut for auto-loading a PPK (key) in |
REM | Pageant by writing a temporary VB script and executing it. The |
REM | following information below is added to the shortcut. |
REM | |
REM | Filename : Pageant Autoload |
REM | Target : pageant.exe |
REM | Arguments : id_rsa.ppk |
REM | Start in : ~/.ssh |
REM | Global Values - Do not touch these! |
SET STARTUP_DIR=Microsoft\Windows\Start Menu\Programs\Startup
SET STARTUP_ALL_USERS_DIR=%PROGRAMDATA%\%STARTUP_DIR% REM Alternative
REM | Shortcut Values - You can change these to whatever you want. |
SET FILENAME=Pageant Autoload.lnk
SET DESCRIPTION=Autoload PuTTY key with Pageant on startup (Ctrl+Alt+S)
REM | Write a new VB script, on the fly; execute and delete it. |
ECHO Set oWS = WScript.CreateObject("WScript.Shell") >> %VBSCRIPT%
ECHO sLinkFile = "%STARTUP_USER_DIR%\%FILENAME%" >> %VBSCRIPT%
ECHO Set oLink = oWS.CreateShortcut(sLinkFile) >> %VBSCRIPT%
ECHO oLink.TargetPath = "%TARGET%" >> %VBSCRIPT%
ECHO oLink.Arguments = "%ARGUMENTS%" >> %VBSCRIPT%
ECHO oLink.WorkingDirectory = "%START_IN%" >> %VBSCRIPT%
ECHO oLink.Description = "%DESCRIPTION%" >> %VBSCRIPT%
ECHO oLink.HotKey = "%HOTKEY%" >> %VBSCRIPT%
ECHO oLink.Save >> %VBSCRIPT%
CScript //Nologo %VBSCRIPT%
DEL %VBSCRIPT% /f /q
Via Windows Explorer
Navigate to the startup directory in Windows Explorer.
Startup/ directory (preferred) is located at:
Startup/ directory is located at:
Right-click inside the folder and select New → Shortcut
In the Create Shortcut dialog, enter the following information.
"C:\Program Files (x86)\PuTTY\pageant.exe"
Right-click the new shortcut and choose Properties from the context menu.
Modify the following fields under the Shortcut tab:
- Start in:
If you are using a 32-bit Windows OS, you should use the
%PROGRAMFILES% environment variable instead of
If you placed your shortcut in the All Users startup directory, make sure that the current user has an
id_rsa.ppk key in their
~/.ssh directory or the key will not auto-load.
There you have it. Next time you log into your Windows profile, you will be greeted with a Pageant prompt to enter the password for your key. If you did not set a password on your key, then your key should be loaded automatically without a prompt.
If you are not sure if your key loaded view the current keys in Pageant by selecting View Keys from the context menu for Pageant in the system tray.