SSH Keys Microsoft Windows
7 minute read
SSH Keys on MS Windows
What are SSH keys?
SSH (Secure Shell) keys are an access credential that is used in the SSH protocol.
The private key remains on the system being used to access the HPCC cluster and is used to decrypt information that is exchanged in the transfer between the HPCC cluster and your system.
A public key file is used to encrypt information, and is stored on your own system. The public key file is stored on the HPCC cluster and contains a list of authorized public keys.
Why do you need SSH keys?
HPCC supports two authentication methods;
Password+DUO method requires a UCR NetID, if you do not have this then you will need to use
SSH keys in order to access the HPCC cluster.
What you need
You will need to install
MobaXterm in order to generate your
SSH keys and also to transfer the keys to the cluster.
- Double click portable version of exe and run the
If you choose to upload you SSH key to the HPCC cluster with a GUI app, you will need to install
FileZilla or a similar sFTP/SCP client.
Note, FileZilla is not required if you use the command-line approach below.
- Download the
FileZilla Clientfor Windows here. * Make sure your Windows system is updated to the latest version.
- Follow the install wizard to complete the install of
Create SSH Keys (
The following provides instructions for both (A) command-line-based and (B) GUI-based SSH key creation. Users need to choose which option is more suitable for them. Usually, the command-line based approach is much quicker even for users without command-line experience since it only requires to copy and paste a few lines of code.
(A) Command-line-based SSH key creation
Creating SSH keys in MobaXterm from the command-line is straightforward and almost identical to creating SSH keys under macOS and Linux (see here). To create the SSH key pair from the command-line, open the MobaXterm terminal and then execute the following commands. This can be done by a simple copy and paste rather than typing, and then pressing the enter key. Users who wish to use WinSCP instead of FileZilla as sFTP client need to follow the key generation instructions of this software as outlined here.
mkdir -p ~/.ssh # creates SSH directory ssh-keygen -t rsa -f ~/.ssh/id_rsa # creates key pair (private and public)
Next, check the content of the newly created
.ssh directory with
ls -al .ssh/. It should contain files for the private and public keys that are named
id_rsa.pub, respectively. Importantly, this private key file should not be shared.
Note, when using PuTTY (and WinSCP) instead of MobaXterm for generating SSH
keys, then the private key is stored in PuTTY’s proprietary key format, which is
indicated by a
.ppk file extension. A key of this format is required when using
PuTTY as SSH client, and it cannot be used with other SSH client tools.
The public key is the one that needs to be uploaded to the remote system one
wishes to connect to. On the HPCC cluster it needs to be saved in a file
located under this location of your home directory:
The upload can be performed with an sFTP/SCP GUI app like the one built into
MobaXterm or FileZilla (see GUI section below). Copying the key from MobaXterm
into the clipboard (e.g. in
less) and then pasting it into the
corresponding file opened on the remote system with a code editor like
another but more advanced option. The following shows how to upload the private
SSH key from the command-line in MobaXterm to the HPCC cluster using the
command, where it is important that users replace
<username> with their own
username on the HPCC cluster. Importantly, only one of the following two
commands should be used. The first one should be used if an
file does not exist yet, e.g. when a user configures SSH key accees on the
HPCC system for the first time. The second one should be used to append a new
public SSH key to an already existing
scp .ssh/id_rsa.pub <username>@cluster.hpcc.ucr.edu:.ssh/authorized_keys
Append SSH key to already existing
scp .ssh/id_rsa.pub <username>@cluster.hpcc.ucr.edu:tmpkey && ssh firstname.lastname@example.org "cat tmpkey >> ~/.ssh/authorized_keys && rm tmpkey"
Note, prior to setting up SSH key access both of the above scp commands
require functional password/DUO credentials. Users who do not have password/DUO
access (e.g. non-UCR users) will need to email their public SSH key to email@example.com so that the
systems admin can add their public SSH key to
~/.ssh/authorized_keys of the corresponding
(B) GUI-based SSH key creation
Please use the following GUI-based instructions for generating SSH keys at your own risk. The above command-line approach is preferred since it is much easier and reliable.
Begin by clicking on the tools drop down on the upper menu bar
Find and click on the MobaKeyGen (SSH key generator) option
A window should appear to create a new SSH key. Click on generate to create a new SSH key pair. Follow the on menu instructions.
Once your key has been created, enter a password in the key passphrase field to password protect your key. Click on
conversionsin the tool bar and click on
Export OpenSSH Key. Save this key as
id_rsaand put the file in an easy to access location. Click on
Save private keyto save the private key with an extension of
.ppkto use with MobaXterm or FileZilla. Save the key as
mobaxterm_privkeyand put the file in an easy to access location.
Highlight EVERYTHING in the box labeled “Public key for pasting into OpenSSH authorized_keys file” then right-click on it and choose Copy. Open
Notepadand paste the copied text. Save the file as
id_rsa.puband put the file in an easy to access location.
SSH keys should be saved under the location
Configure SSH Keys
Public SSH Key
Now that you have created your
SSH keys, and renamed them, you will need to placed the public key (
id_rsa.pub) on the cluster using the
Fill in the
Quickconnectfields at the top of the application window:
- Enter your HPCC username in the
- Enter the HPCC servername
- Enter your password in the
- Enter your HPCC username in the
If the next pop up prompts you, then check the box that states
Always trust this host, add this key to the cache, then click the
You will need to create a
.sshdirectory to hold your SSH keys. On the right hand side, right click and click on the
Create directory optionunder your home folder location.
A window will appear to name the new directory. Name should be the following format:
/rhome/username/.ssh. After naming the new directory click on
Right click on the new
.sshdirectory that has been created. Find and click on
A window with the directory permissions will appear. The
.sshdirectory needs exact permissions in order for it to function properly. Follow the image below to apply the permissions.
Now that you are connected to Filezilla transfer your public SSH key from your system by dragging the file
id_rsa.puband dropping it into the HPCC cluster direcotry
Once the file is transferred to the cluster, be sure to rename
Private SSH Key
Once your public key is in place, now you can configure
Filezilla to use your private
SSH key and connect to the cluster through the
Site Managerbutton in the top bar of icons.
New Site, rename it (optional) and press enter.
Make sure the following fields are correctly filled before adding your
Protocol: should be set to
SFTP - SSH File Transfer Protocol
Host: type in
Logon Type: set to
User: type in your HPCC username
After these fields are finalized, click the
Navigate to the folder you saved your private key file in and open the private key file
mobaxterm_privkey.ppk. You should see the added keyfile in the
Key file:box, then click
Subsequnt connections can be done from the
Quickconnecthistory by clicking on the down arrow to the right side of the
Quickconnectbutton. Remember to select the
Transfer files by double clicking or drag-n-drop. For more details regarding file transfers vist Filezilla Usage.