Generate Ssh Key In Winscp

Posted on  by 

Inability to automate key management makes it very cumbersome in large enterprises and makes compliance audits very difficult. WinSCP is open source and does not come with any support. Security Alert. Many organizations have massive amounts of SSH keys that must be properly managed. If left unmanaged, they pose a major risk and compliance issue.

So a single point of reference for generating SSH keys is Generating SSH Keys for SFTP Adapters – Type 1 – Process Integration – SCN Wiki.

Recent observations from multiple projects where people create SSH public key and give to SFTP server team and mysteriously it connect then. It all left me searching here and there solve the problem. The causes of this are –

1. SAP PI Developer not aware whether keys are valid or not?

2. SFTP server administrator may just believe key provided are correct?

3. Basis team may not may also be unaware how the end ssh key should be? Is it uploaded at the correct place? Are the permissions correct.

So here I am, making an attempt to bridge the gap and provide you the “KEY for Key Generation”. Let us first know what all we may need, the so called –

Â

PRE-REQUISITES

1. WinScp (you may have other tools, but this one is simple and easily available 🙂 )

2. Cygwin installed with openSSH and openSSL packages

Video – https://www.youtube.com/watch?v=hh-V6el8Oxk

              Text – Installing Cygwin/X

3. Putty (FAMOUS) – this and WinScp can be combined.

4. NWA keystore access to create keystores

The above is enough to generate the keys and have it ready for the development. But, we PI consultants end up getting erroneous results for a new configuration. So to make sure we give the tested keys to client here is a tutorial to create the SFTP server on your local windows machine.

Apart from the links in the Part2, I will explain hand-picked steps out of the tutorial to set up sftp server correctly and quickly in the first attempt ( 😉 ) . So enough of reading let us start with the configuration.

1. Start Winscp -> Click on Tools -> Run PuTTygen

2. Select Parameters – SSH-2 RSA and Enter number of bits -2048. Click Generate.

3. Now you need to save the PrivateKey (ppk), PublicKey and PublicKey to be saved in SFTP server.

Note- i) The public key saved from “Save Public Key” and the “Public Key” to be saved in SFTP server can’t be same. The public key                                        saved starts with —- BEGIN SSH2 PUBLIC KEY —-, but the key to be pasted in SFTP server starts with ssh-rsa.

 ii) In the file authorized_keys, each line refers to a separate public key. So we also need to make sure there are no new line                                              characters in our key. So an authorized_keys file will look as below-

Â

4. Below are the Keys generated. Please follow the instruction in screenshots carefully.

Once the keys are generated, click on Save Private Key, Save Public Key and copy paste the key to be pasted in authorized_keys file and save.

Now, you will have 3 files generated. PPK private key, SSH public Key, SSH Public key to be pasted on to SFTP server. I have named 3 files as privateKey_SFTP.ppk, publicKey_SFTP.pub and publicKey_SSH.pub. Files will look as below.

5.Now sendpublicKey_SSH.pub file to SFTP server team to install via mail. If you want to test it with a local SFTP server, refer part 2 or video link embedded above.

Â

6. Before we put the key to SAP PO NWA KeyStore we must make sure our keys are set up correctly. To test this we can use WinScp or PuTTy.

Â

Testing With WinScp

Â

Â

In Advanced->Click Authentication under SSH -> Select the ppk private key

Â

Â

Â

Â

When you login for the first time, you will get a warning with the server’s fingerprint. This is a good sign showing it is able to reach the SFTP server. Just click Yes.

Â

Â

If you have chosen Passphrase while generating the key it will ask the passphrase else it will connect.

Â

And that is it, you will be placed at the SFTProot folder.

Â

Â

This must be your Hurray! moment. After this the task is easy. We need to convert PPK to PKCS12 and import in NWA. Lets see how to do that too.

Â

Generate Ssh Key In Winscp Windows 10

6. Now we need to convert privateKey_SFTP.ppk to pkcs12 format for SAP PO to import in NWA key store. For this Cygwin must be installed with openssl package

Â

  i) We will generate a PEM private key. I am naming it as privateKey_SFTP.pem. So again launch WinSCP->Tools->Run PuttYgen

  ii) Click on File->Load Private Key and choose your PPK key (privateKey_SFTP.ppk)

Â

  Â

      iii) Once the key is loaded, I recommend remove the passphrase this time and click Conversions->Export Open SSH Key, it will give warnign for blank passphrase. Just click YES and proceed. Name it as <yourname>.pem (privateKey_SFTP.pem)

Â

It will look like

Â

Â

    iv) Now launch cygwin as administrator . Right click -> run as administrator. Now run change directory ( cd) command to move to directory where you kept you pem file. for the ease place it in any drve G: , D: . This will save us to struggle with CD command 😉

v) use OpenSSL package commands to create X.509 certificate

    openssl req -new-x509 -days 3650-key privateKey_SFTP.pem -out x509_certificateSFTP.pem

Â

Â

Â

      Â

Â

                v) Now we will create PKCS 12 key to be imported in NWA with a password. Continuing in the CYGWIN enter following command

Â

            openssl pkcs12 -export -in x509_certificateSFTP.pem -inkey privateKey_SFTP.pem -out sftp_keystore.p12

Winscp Add Private Key

Â

Â

Â

7. Now login to NWA of SAP PO/PI .. http://<host>:<port>/nwa…… Configuration->Certificates and keys

Â

      i) Click on Add View-> Give View Name

Â

       ii) choose SFTP_KeyStore -> Import Entry-> PKCS#12 and click choose file to select the p12 generated. Provide the password which we set in cygwin while generating P12 and click import

Â

Â

Â

Â

This is all. Now you can select the above private key in your SFTP channel and continue with your development.

Â

Â

In the Part 2, I will show how to test the connection with PuTTy (already shown with WinScp) and also how to set up the local SFTP server. Stay Tuned for Part2

Generate Ssh Key In Winscp

Generate Ssh Key Putty

Â

Â

Several tools exist to generate SSH public/private key pairs. The following sections show how to generate an SSH key pair on UNIX, UNIX-like and Windows platforms.

Generate Ssh Key In Winscp Free

Generating an SSH Key Pair on UNIX and UNIX-Like Platforms Using the ssh-keygen Utility

UNIX and UNIX-like platforms (including Solaris and Linux) include the ssh-keygen utility to generate SSH key pairs.

To generate an SSH key pair on UNIX and UNIX-like platforms using the ssh-keygen utility:
  1. Navigate to your home directory:
  2. Run the ssh-keygen utility, providing as filename your choice of file name for the private key:

    The ssh-keygen utility prompts you for a passphrase for the private key.

  3. Enter a passphrase for the private key, or press Enter to create a private key without a passphrase:

    Note:

    While a passphrase is not required, you should specify one as a security measure to protect the private key from unauthorized use. When you specify a passphrase, a user must enter the passphrase every time the private key is used.

    The ssh-keygen utility prompts you to enter the passphrase again.

  4. Enter the passphrase again, or press Enter again to continue creating a private key without a passphrase:
  5. The ssh-keygen utility displays a message indicating that the private key has been saved as filename and the public key has been saved as filename.pub. It also displays information about the key fingerprint and randomart image.

Generating an SSH Key Pair on Windows Using the PuTTYgen Program

The PuTTYgen program is part of PuTTY, an open source networking client for the Windows platform.

Generate Ssh Key In Winscp File

To generate an SSH key pair on Windows using the PuTTYgen program:

Generate Ssh Key In Winscp Download

  1. Download and install PuTTY or PuTTYgen.

    To download PuTTY or PuTTYgen, go to http://www.putty.org/ and click the You can download PuTTY here link.

  2. Run the PuTTYgen program.
  3. Set the Type of key to generate option to SSH-2 RSA.
  4. In the Number of bits in a generated key box, enter 2048.
  5. Click Generate to generate a public/private key pair.

    As the key is being generated, move the mouse around the blank area as directed.

  6. (Optional) Enter a passphrase for the private key in the Key passphrase box and reenter it in the Confirm passphrase box.

    Note:

    While a passphrase is not required, you should specify one as a security measure to protect the private key from unauthorized use. When you specify a passphrase, a user must enter the passphrase every time the private key is used.

  7. Click Save private key to save the private key to a file. To adhere to file-naming conventions, you should give the private key file an extension of .ppk (PuTTY private key).

    Note:

    The .ppk file extension indicates that the private key is in PuTTY's proprietary format. You must use a key of this format when using PuTTY as your SSH client. It cannot be used with other SSH client tools. Refer to the PuTTY documentation to convert a private key in this format to a different format.
  8. Select all of the characters in the Public key for pasting into OpenSSH authorized_keys file box.

    Make sure you select all the characters, not just the ones you can see in the narrow window. If a scroll bar is next to the characters, you aren't seeing all the characters.

  9. Right-click somewhere in the selected text and select Copy from the menu.
  10. Open a text editor and paste the characters, just as you copied them. Start at the first character in the text editor, and do not insert any line breaks.
  11. Save the text file in the same folder where you saved the private key, using the .pub extension to indicate that the file contains a public key.
  12. If you or others are going to use an SSH client that requires the OpenSSH format for private keys (such as the ssh utility on Linux), export the private key:
    1. On the Conversions menu, choose Export OpenSSH key.
    2. Save the private key in OpenSSH format in the same folder where you saved the private key in .ppk format, using an extension such as .openssh to indicate the file's content.

Coments are closed