SFTP on Windows using Cygwin

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

  • Access the following URL, then click Install Cygwin:

    http://www.cygwin.com/

  • 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.

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

    Surrounding text describes cygwin1.gif.
  • On the Choose Installation Type screen, select Install from Internet, then click Next.

    Surrounding text describes cygwin2.gif.
  • 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>\oui\prov\resources\ssPaths_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:\software\cygwin directory, then update the specified properties in the following manner:

    SCP_PATH=D:\software\cygwin\bin\scp.exe  SH_PATH=D:\software\cygwin\bin\sh.exe  CHMOD_PATH=D:\software\cygwin\bin\chmod.exe  LS_PATH=D:\software\cygwin\bin\ls.exe  
    Surrounding text describes cygwin3.gif.
  • 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.

    Surrounding text describes cygwin_3.JPG.
  • On the Select Connection Type screen, select appropriate settings to connect to the internet, then click Next.

    Surrounding text describes cygwin5.gif.
  • On the Choose Download Site(s) screen, select any site from the available list, then click Next.

    Surrounding text describes cygwin6.gif.
  • 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:

    Surrounding text describes cygwin_4.jpg.

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

    Surrounding text describes cygwin_5.jpg.

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

    Surrounding text describes cygwin_6.JPG.
  • On the Installation Status and Create Icons screen, do not make any changes. Click Finish to complete the installation process.

    Surrounding text describes cygwin10.gif.

    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 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:

      @echo off    C:  chdir C:\cygwin\bin  set CYGWIN=binmode ntsec  bash --login -i  
    2. To verify if Cygwin (cygrunsrv) is installed properly, run C:\cygwin\Cygwin.bat, and execute the following command:

      cygrunsrv -h  

      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:\cygwin\Cygwin.bat, and execute the following command:

      ssh-host-config  

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

      *** Query: Should privilege separation be used? <yes/no>: yes  *** Query: New local account 'sshd'? <yes/no>: yes  *** Query: Do you want to install sshd as a service?  *** Query: <Say "no" if it is already installed as a service> <yes/no>: yes  *** Query: Enter the value of CYGWIN for the deamon: [] binmode ntsec  *** Query: Do you want to use a different name? (yes/no) yes/no  

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

      *** Query: Create new privileged user account 'cyg_server'? (yes/no) yes  *** Query: Please enter the password:  *** Query: Renter:  

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

      *** Query: Enter the new user name: cyg_server1  *** Query: Reenter: cyg_server1  *** Query: Create new privileged user account 'cyg_server1'? (yes/no) yes  *** Query: Please enter the password:  *** Query: Reenter:  

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

      Host configuration finished. Have fun!  
    4. Backup the c:\cygwin\etc\passwd 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:\cygwin\etc\passwd 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:\cygwin\Cygwin.bat and execute the following:

        /bin/mkpasswd -l –u <USER> >> /etc/passwd (for example, /bin/mkpasswd -l -u pjohn >> /etc/passwd)  
      • 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:\cygwin\Cygwin.bat and execute the following:

        /bin/mkpasswd -d -u <USER> >> /etc/passwd (for example, /bin/mkpasswd -d -u pjohn >> /etc/passwd)  mkdir -p /home/<USER>  (for example, mkdir -p /home/pjohn)  chown <USER> /home/<USER> (for example, chown pjohn /home/pjohn)  
    5. (Only if the Cygwin software you have installed is of version 1.7.32 or higher) Open C:\cygwin\etc\sshd_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:\cygwin\Cygwin.bat, and execute the following:

        chown <USERNAME> /var/log/sshd.log  chown -R <USERNAME> /var/empty  chown <USERNAME> /etc/ssh*  chmod 755 /var/empty  chmod 644 /var/log/sshd.log  

        Note:

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

      Run C:\cygwin\Cygwin.bat and execute the following command:

      /usr/sbin/sshd

      OR

      Run C:\cygwin\Cygwin.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.

      Surrounding text describes cygwin_start_service.jpg.

      Note:

      If the SSH daemon does not start up, view the c:\cygwin\var\log\sshd.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:

      ssh -l <USERNAME> <localhost> 'date'    OR    ssh -l <USERNAME> <this node> 'date'  

      For example,

      ssh -l pjohn example.com 'date'  

      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:

    http://cygwin.com/faq.html 

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

    http://cygwin.com/problems.html


    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:

        set CYGWIN=binmode ntsec nodosfilewarning  

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

        @echo off    C:  chdir C:\cygwin\bin  set CYGWIN=binmode ntsec nodosfilewarning  bash --login -i  
      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:

        $ /usr/sbin/sshd  

        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:
        $ chown <windows_install_user>:<windows_install_group> /var/empty  

        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).

    Popular posts from this blog

    Shrink you container size up to 95%.

    alma linux: dnf Module yaml error: Unexpected key in data