Generate Ssh Key In Cygwin

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

CREATE SFTP SERVER using CYGWIN

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
Content
  • 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 http://www.cygwin.com/ 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).
Change:
dfc0364:unused_by..........-1851:/home/dfc0364:/bin/bash
to:
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... http://code.google.com/p/soi-
toolkit/wiki/InstallationGuideCygwinSetup
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/id_dsa.pub.
The key fingerprint is:
07:5c:3f:f6:8e:b5:91:de:02:5c:c3:c8:3a:04:3f:aa dfc0364@dse31673
The key's randomart image is:
+--[ DSA 1024]----+
. .
. + o o
o + * +
+ = + o
S + o =
. . . * +
E . = .
.

+-----------------+
dfc0364@dse31673 ~
$ cat ~/.ssh/id_dsa.pub >> ~/.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 dfc0364@localhost
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 :
SvcCOPSSH:unused_by_nt/2000/xp:0:545:U-WINDOWS-AU90FH5SvcCOPSSH,S-1-5-21-2943273595-299576109-709065550-1031:/var/:/bin/false
Restart OPENSSH service and Enjoy !
  1. Generate Ssh Public Key Cygwin
  2. Generate Ssh Key Aix
  3. Generate Ssh Key Github
  • Jun 22, 2012  SSH keys provide a more secure way of logging into a virtual private server with SSH than using a password alone. With SSH keys, users can log into a server without a password. This tutorial explains how to generate, use, and upload an SSH Key Pair.
  • Mar 31, 2020  If you need to add users who don't have SSH keys, generate a new SSH key for each new user. If you need to add users who have existing SSH keys, locate the public SSH key file for each user. Format any public SSH keys that you want to add so they work correctly with the tool that you use to edit metadata. Optionally, you can also format your.

Generate Ssh Public Key Cygwin

Cygwin will then install, and create icons in your start menu as well as on your desktop. If no icons are created, run the setup again. The setup will not reinstall Cygwin, but it will take you to the end, where you can check the boxes indicating you want the icons installed. To Download and Install Cygwin. Log in as a user with Administrator privileges. Create the folder C: cygwin. From the Cygwin home page, download and save the setup.exe file to your desktop. Run the setup.exe file. Select the default for the following options: Install from Internet. Install Root.

This chapter explains how to install Cygwin and start the SSH daemon on Microsoft Windows hosts. This chapter is applicable only when you want to install a Management Agent on a Microsoft Windows host, using the Add Host Targets Wizard or EM CLI. In particular, this chapter covers the following:

Important:

If you do not want to install Cygwin to deploy Management Agents on Microsoft Windows hosts using the Add Host Targets Wizard or EM CLI, you can choose to deploy Management Agents on these hosts using the PsExec process utility. For information on how to deploy Management Agents on Microsoft Windows hosts using PsExec, see Appendix F.

5.1About the Cygwin Requirement for Installing Management Agents

The Add Host Targets Wizard is an application built into the Enterprise Manager Cloud Control console. It offers GUI-rich, interactive screens that enable you to install Oracle Management Agents (Management Agents) on unmanaged hosts and convert them to managed hosts, so that they can be monitored and managed in Enterprise Manager Cloud Control.

When you use the Add Host Targets Wizard or EM CLI to install a Management Agent on a host running on Microsoft Windows, as a prerequisite, you must install Cygwin and start the SSH Daemon on the host. To do so, follow the steps listed in Section 5.3.

Cygwin is essentially a utility that offers a Linux-like environment on a Microsoft Windows host. Technically, it is a DLL (cygwin1.dll) that acts as a Linux API layer providing substantial Linux API functionality. Once you install Cygwin, you can configure the SSH Daemon on the host. The Add Host Targets Wizard is certified and supported with Cygwin 1.7.

The SSH Daemon enables the Add Host Targets Wizard to establish SSH connectivity between the OMS host and the host on which you want to install a Management Agent. Using this connectivity, the wizard transfers the Management Agent software binaries to the destination host over SSH protocol, installs the Management Agent, and configures it.

5.2 Before You Begin Installing Cygwin

Before starting with the SSHD setup, ensure you are not using OpenSSH and MKSNT when using the Add Host Targets Wizard. To do so, perform the following checks:

  1. Ensure OpenSSHbin and mksnt are not in your PATH environment variable. If they are, remove them by doing the following:

    1. Right-click on My Computer and go to Properties.

    2. In the System Properties window, click Advanced.

    3. In this tab, click Environment Variables.

    4. Here, search for the PATH system variable, select it, and if the OpenSSHbin and mksnt are present in PATH, click Edit.

    5. In the Edit System Variable dialog box, delete these two values from PATH,then click OK.


  2. Stop the SSH Daemon if it is running from OpenSSH, MKS or any other vendor. If the SSH Daemon is running, stop it by doing the following:

    1. Right-click on My Computer, and select Manage.

    2. In the Computer Management window, in the left pane, expand Services and Applications, and select Services.

    3. In the right pane, click the SSH Daemon/MKS Secure Shell service, then click the Stop button.


Note:

The navigational steps described in this section may vary for different Microsoft Windows operating systems.

5.3 Installing Cygwin

To install Cygwin on a Microsoft Windows host, follow these steps:

  1. Access the following URL, then click Install Cygwin:

  2. Download the 32-bit version (if you are running a 32-bit version of Microsoft Windows) or the 64-bit version (if you are running a 64-bit version of Microsoft Windows) of the Cygwin setup executable.

  3. Run the setup executable, then click Next to proceed.


  4. On the Choose Installation Type screen, select Install from Internet, then click Next.


  5. On the Choose Installation Directory screen, enter C:cygwin as the Root Directory, then click Next.

    Note:

    If you choose to install Cygwin in a different directory, then ensure that you update the SSH_PATH, SCP_PATH, MKDIR_PATH, SH_PATH, CHMOD_PATH, and TRUE properties present in the $<OMS_HOME>ouiprovresourcesssPaths_msplats.properties file to their proper Cygwin binary values, after installing the Enterprise Manager system.

    For example, if you choose to install Cygwin in the D:softwarecygwin directory, then update the specified properties in the following manner:


  6. On the Select Local Package Directory screen, select a directory on your local machine where you want to store the downloaded installation files, then click Next.


  7. On the Select Connection Type screen, select appropriate settings to connect to the internet, then click Next.


  8. On the Choose Download Site(s) screen, select any site from the available list, then click Next.


  9. On the select packages screen, ensure that you select the following packages, then click Next:

    From the Archive category, select unzip and zip as follows:


    From the Net category, select openssh and openssl as follows:


    After selecting the packages and clicking Next, the Resolving Dependencies screen is displayed. Click Next to proceed.


  10. On the Installation Status and Create Icons screen, do not make any changes. Click Finish to complete the installation process.


5.4 Configuring SSH

This section describes how to configure SSH and test your Cygwin setup after installing Cygwin on a host.

Note:

While configuring SSH, you may need to run the cygwin.bat script. While running cygwin.bat

Generate Ssh Key Aix

in Microsoft Windows Server 2008 and Microsoft Windows Vista, ensure that you invoke it in administrator mode. To do this, right-click the cygwin.bat file and select Run as administrator.

To configure SSH and test your Cygwin setup, follow these steps:

  1. After you install Cygwin, navigate to the C:cygwin directory, open the Cygwin.bat file in edit mode using any editor, and add the following line before invoking the bash shell.

    set CYGWIN=binmode ntsec

    For example, here are the contents for the Cygwin.bat file after adding the above line:

  2. To verify if Cygwin (cygrunsrv) is installed properly, run C:cygwinCygwin.bat, and execute the following command:

    If Cygwin is installed properly, then all the Cygwin help options are displayed on the screen. However, if this command returns an error message, then you may have to reinstall Cygwin.

  3. To configure the SSHD service, run C:cygwinCygwin.bat, and execute the following command:

    After running the command, you are prompted the following questions:

    At this point, if you want to use the same name, that is cyg_server, enter no. You are then prompted the following questions:

    However, if you want to use a different name, enter yes. You are then prompted the following questions:

    If the configuration is successful, you will see the following message:

  4. Backup the c:cygwinetcpasswd file and then use any editor to open the file in edit mode. Remove only those entries of the user that you will use to connect to the host on which you want to install a Management Agent. Ask the user to make a backup of the c:cygwinetcpasswd file before editing.

    • If the user that you are employing to connect to the host on which you want to install the Management Agent is a local user, run C:cygwinCygwin.bat and execute the following:

    • If the user you are employing to connect to the host on which you want to install the Management Agent running is a domain user, run C:cygwinCygwin.bat and execute the following:

  5. (Only if the Cygwin software you have installed is of version 1.7.32 or higher) Open C:cygwinetcsshd_config in a text editor and add the following line to the end of the file:

    KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

  6. (For a domain user only) If the user you are employing to connect to the host on which you want to install the Management Agent is a domain user, do the following to start the SSH daemon:

    1. Right-click on My Computer, and select Manage.

    2. In the Computer Management dialog box that appears, go to Services and Applications, and select CYGWIN sshd.

    3. Right-click CYGWIN sshd and select Properties.

    4. In the Properties dialog box, go to the Log On tab.

    5. Here, specify the domain/user name and password. Click Apply.

    6. Run C:cygwinCygwin.bat, and execute the following:

      Note:

      If /var/log/sshd.log does not exist, you do not have to execute the following commands:
  7. Perform one of the following steps to start the SSH daemon:

    Run C:cygwinCygwin.bat and execute the following command:

    /usr/sbin/sshd

    OR

    Run C:cygwinCygwin.bat and execute the following command:

    cygrunsrv -S sshd

    OR

    Perform these steps:

    1. Right-click on My Computer, and select Manage.

    2. In the Computer Management dialog box that appears, go to Services and Applications, and select CYGWIN sshd.

    3. Click CYGWIN sshd, then click the Start button.


    Note:

    If the SSH daemon does not start up, view the c:cygwinvarlogsshd.log file for information on why the start up failed.
  8. You can now test your Cygwin setup.

    To do this, go to a different machine (that has the ssh client running), and execute the following command:

    For example,

    This command will prompt you to specify the password. When you specify the correct password, the command should return the accurate date.

Note:

If you experience a process fork failure, memory leak error, or a file access error after configuring SSH, view the following website for a workaround:

If you are unable to find a workaround for your problem, report your problem to the Cygwin community using the following website:

Generate Ssh Key Github

5.5 After Installing Cygwin and Configuring SSH

After installing Cygwin (as described in Section 5.3) and configuring SSH (as described in Section 5.4), follow these steps:

  1. If the OMS host runs on a Microsoft Windows platform, perform the following on the OMS host:

    1. Right click My Computer, then select Properties. In the window that appears, select Advanced system settings, then select Environment Variables. In the System Variables section, create the CYGWIN variable, and specify its value as nodosfilewarning

      Note:

      You do not need to restart the host after performing this step.
    2. Navigate to the Cygwin install directory (that is, C:cygwin if you chose to install Cygwin in the default location), open the Cygwin.bat file in edit mode using any editor, then edit the following line:

      For example, these are the contents of the Cygwin.bat file after editing the above line:

    3. From the Start menu, select Run. For Open, enter services.msc, then click OK. Search for the Cygwin SSHD service and stop it.

    4. Navigate to the Cygwin install directory (that is, C:cygwin if you chose to install Cygwin in the default location), then run Cygwin.bat. Run the following command to start the SSHD service:

      Note:

      Running this command may return an error mentioning that /var/empty must be owned by the root user. If you encounter this error, run the following from the Cygwin terminal:

      After running this command, retry the $ /usr/sbin/sshd command.

  2. Perform the tasks mentioned in Step 1 on all the Microsoft Windows target hosts (on which you want to install Management Agents using the Add Host Targets Wizard or EM CLI).