Generate Ssh Public Key Cygwin

If you don't already have an SSH key, you must generate a new SSH key.If you're unsure whether you already have an SSH key, check for existing keys. If you don't want to reenter your passphrase every time you use your SSH key, you can add your key to the SSH agent, which manages your SSH keys and remembers your passphrase. The second step is to export the public key to the servers, with respective logins, to the authorized keys file. Replace [email protected] to your needs. Cat /.ssh/ ssh [email protected] 'cat - /.ssh/authorizedkeys' You may need to create the ssh folder first in your home directory on the remote machine. Mkdir /.ssh or combine it within the.

SSH keys are a way to identify trusted computers, without involving passwords. The steps below will walk you through generating an SSH key and adding the public key to the server.

Step 1: Check for SSH Keys

First, check for existing SSH keys on your computer. Open Git Bash, Cygwin, or Terminal, etc. and enter:

Generate Ssh Key Using Cygwin

Check the directory listing to see if you already have a public SSH key. By default, the filenames of the public keys are one of the following:


If you see an existing public and private key pair listed (for example and id_rsa) that you’d like to use, you can skip Step 2 and go straight to Step 3.

Step 2: Generate a new SSH key

With your command line tool still open, enter the text shown below. Make sure you substitute in your email address:

Ssh Generate Public Key From Private

You’ll be asked to enter a passphrase, or simply press Enter to not enter a passphrase:

After you enter a passphrase (or just press Enter twice), review the fingerprint, or ‘id’ of your SSH key:

Step 3: Add your key to the ssh-agent

Ssh generate public key from private

To configure the ssh-agent program to use your SSH key, first ensure ssh-agent is enabled.

If you are using Git Bash, turn on the ssh-agent with command shown below instead:

Then, add your SSH key to the ssh-agent:

Step 4: Add your SSH key to the server

To add your public SSH key to the server, you’ll copy the public SSH key you just created to the server. Substitute “username” with your username on the server, and “” with the domain address or IP address of your server:

The server will then prompt you for your password:


Generate Public Key Cygwin

That’s it! You should now be set up to connect to the server without having to authenticate.

Linux‎ > ‎TOOLS‎ > ‎SFTP‎ > ‎


This blog is useful for you if :
1. You want to setup SFTP on Windows
2. If you want to restrict user to a directory on SFTP (using openssh)

Some background inforamtion :
What is SFTP read here
What is OpenSSH read here
What is cygwin read here
  • Install SFTP-server, Cygwin with OpenSSH
  • Configure home-directory
  • Configure SSH-server
  • Start the SSH-service
  • Generate SSH-keys
  • Test login to SFTP-server
  • Uninstall the SSH-service
  • Restrict User to a directory
Install SFTP-server, Cygwin with OpenSSH
  1. Download setup.exe from and save the file to 'c:cygwincygwin.install' (you will have to 1. create the directory).
  2. Run setup.exe and follow instructions below:

Configure home-directory
Note: This step is necessary if roaming profiles are used in Windows.
1. Start Cygwin
2. Open 'c:cygwinetcpasswd' with a text editor (Notepad for example)
3. In passwd, change home-dir from '/home' to 'C:Documents and Settings' (example below for user id:
dfc0364:unused_by..........-1851:/cygdrive/c/Documents and Settings/dfc0364:/bin/bash
1. Close Cygwin
Configure SSH-server
Configure the SSH-server (sshd) in a Cygwin window:
$ ssh-host-config
*** Info: Generating /etc/ssh_host_key
*** Info: Generating /etc/ssh_host_rsa_key
*** Info: Generating /etc/ssh_host_dsa_key
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) yes
*** Info: Updating /etc/sshd_config file
*** Warning: The following functions require administrator privileges!
*** Query: Do you want to install sshd as a service?
*** Query: (Say 'no' if it is already installed as a service) (yes/no) yes
*** Info: Note that the CYGWIN variable must contain at least 'ntsec'
*** Info: for sshd to be able to change user context without password.
*** Query: Enter the value of CYGWIN for the daemon: [ntsec]
*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start sshd' or `cygrunsrv -S sshd'. Otherwise, it
*** Info: will start automatically after the next reboot.
*** Info: Host configuration finished. Have fun!
InstallationGuideCygwinSetup - soi-toolkit - Cygwin setup for SFTP-s...
Start the SSH-service
Start the SSH-server (sshd) in a Cygwin window:
$ cygrunsrv --start sshd
Generate SSH-keys
Note: Remember your passphrase, you will have to configure it in your service components security-property-file in order to connect to your
local SFTP-server.
Generate the SSH-keys to use for public-key cryptography in a Cygwin window:
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/cygdrive/c/Documents and Settings/dfc0364/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /cygdrive/c/Documents and Settings/dfc0364/.ssh/id_dsa.
Your public key has been saved in /cygdrive/c/Documents and Settings/dfc0364/.ssh/
The key fingerprint is:
07:5c:3f:f6:8e:b5:91:de:02:5c:c3:c8:3a:04:3f:aa [email protected]
The key's randomart image is:
+--[ DSA 1024]----+
. .
. + o o
o + * +
+ = + o
S + o =
. . . * +
E . = .

[email protected] ~
$ cat ~/.ssh/ >> ~/.ssh/authorized_keys2
Test login to SFTP-server
Test to login to your local SFTP-server in a Cygwin window (example for user id: dfc0364):
$ sftp [email protected]
Connecting to localhost...
Enter passphrase for key '/cygdrive/c/Documents and Settings/dfc0364/.ssh/id_dsa':
sftp> exit
Uninstall the SSH-service
If you want to uninstall the SSH-service, open up Cygwin and execute commands:
cygrunsrv --stop sshd
cygrunsrv --remove sshd

Restrict User to a directory
Open etc folder in your cygwin installation. Two file need a edit to to implement chroot jail for user.
1. sshd_config
2. passwd
in sshd_config change below conigurtions

# override default of no subsystems
Subsystem sftp internal-sftp
ChrootDirectory /cygdrive/d/inetpub/ftproot
# Example of overriding settings on a per-user basis
Match User administrators
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

in passwd file
manually edit root user to change the group id (usually 544) to 0
for example as below :
Restart OPENSSH service and Enjoy !