SSH

Server Authentication with Public Keys

Host Key Storage Formats
Using the System-Wide Host Key Storage
Resolving Hashed Host Keys
Using the OpenSSH known_hosts File

The server is authenticated with a digital signature based on an RSA, DSA or ECDSA public-key algorithm. At the beginning of the connection, the server sends its public key to the client for validation.

Server authentication is done during Diffie-Hellman key exchange through a single public-key operation. When public-key authentication is used to authenticate the server, the first connection is very important. During the first connection the client will display a message similar to the one in Figure 4.2.

Tectia Client on Windows – first connection to a remote host

Figure 4.2. Tectia Client on Windows – first connection to a remote host

[Caution]Caution

Never save a host public key without verifying its authenticity!

To help you to verify the identity of the server host, the message displays a fingerprint of the host's public key. The fingerprint is represented using the SSH Babble format, and it consists of a series of pronounceable five-letter words in lower case and separated by dashes.

Verify the validity of the fingerprint, for example by contacting the administrator of the remote host computer (preferably by telephone) and asking the administrator to verify that the key fingerprint is correct. If the fingerprint is not verified, it is possible that the server you are connecting to is not the intended one (this is known as a man-in-the-middle attack).

After verifying the fingerprint, it is safe to continue connecting. Relevant information about the server public key will then be stored on the client-side machine. On Tectia Client on Unix it is stored in the $HOME/.ssh2/hostkeys directory. On Tectia Client on Windows it is stored in the %APPDATA%\SSH\HostKeys directory.

The stored information on the host keys is used in subsequent connections to those remote hosts. Tectia Client checks which type of a host key (DSA, RSA or ECDSA) it possesses for a particular server, and automatically chooses the key exchange algorithm to be used in the connection between the client and server accordingly. This makes it quicker to connect to hosts for which only one type of host key has been stored.

When auth-server-publickey is set to some other policy than strict (as it is by default), if logging is enabled for the Connection Broker, Tectia Client will log information about changed and new host public keys with their fingerprints in the syslog (on Unix) or Event Viewer (on Windows).