SSH overview
SSH (Secure Shell) is a cryptographic network protocol that enables secure remote login from one computer to another. The SSH protocol employs a client-server architecture, whereby a connection is established through an SSH client connecting to an SSH server. The SSH client drives the connection setup process and uses public key cryptography to verify the SSH server identity. After the setup phase, the SSH protocol uses strong symmetric encryption and hashing algorithms to ensure the privacy and integrity of the data exchanged between the client and server.SSH client authentication methods
You can use several methods to authenticate the SSH client to the SSH server. The most commonly used are password and public key authentication.Password authentication
With password authentication, an SSH client authenticates to an SSH server by using your password on the SSH server. For example, an SSH client tries to establish an SSH connection by using the following command:Shell
Public key authentication
You might prefer public key authentication over password authentication because it is more secure and enables increased automation. After you set it up, the SSH client no longer needs to enter a password whenever it connects. Configure public key authentication with the following steps:
Now, when the SSH client attempts to connect by using the
ssh username@server.com command, the SSH server should not request your password as the remote user trying to connect. Instead, the following procedure shows what happens during the connection:
The SSH server checks its
~/.ssh/authorized_keys file and finds your public key that the SSH client is attempting to connect with.The SSH server then asks the SSH client to sign some arbitrary data using its SSH client private key to prove that the SSH client has the private key corresponding to the public key.
How does the KMES Series 3 fit into the process?
By default, when you create an SSH key pair by using the ssh-keygen command on an SSH client machine, the private key is stored in a plaintext file in the~/.ssh directory. This poses a security risk because anyone with access to that machine can view the private key and use it to authenticate to remote machines over SSH.
Incorporating the KMES Series 3 into this process enables the system to store the SSH client private key within the confines of a FIPS 140-2 Level 3-validated hardware security module. SSH integrates with the KMES Series 3 through the PKCS #11 library.
With the KMES incorporated into this process, the SSH client sends the following command to connect to the SSH server, where FXPKCS11_MODULE_LOCATION is the location of the FXPKCS11 library file (libfxpkcs11.so on Linux and fxpkcs11.dll on Windows):
Shell

