This is an old revision of the document!

Where do I get SSH host key fingerprint for use with scripting or .NET assembly?

You should get an SSH host key fingerprint along with your credentials from a server administrator. Knowing the host key fingerprint and thus being able to verify it is an integral part of securing an SSH connection. It prevents man-in-the-middle attacks.

In a real world, most administrators do not provide the host key fingerprint.

In order to obtain the fingerprint yourself you need to connect to the server. Before doing that make any possible precautions to ensure a security of your local machine and a line to the server. For example if you need to obtain the host key to automate a connection to the server from an external site (e.g. from home or a client), but you have physical access to the server site, connect from the server site (e.g. your workplace).

Advertisement

You can also ask anyone with the physical access to the server (ideally the administrator). Host key is only one and hence the same for all users. Also note that the host key fingerprint is generated from a public key part of the host key only. So it is not secret and can be safely sent over an unencrypted (yet trusted) communication channels.

Once connected, go to a Server and Protocol Information Dialog. See a Server Host key Fingerprint box.

A special case is getting host key of a server, that you are an administrator of yourself, yet you do not have a direct secure line to connect through. This is common for virtual servers or servers in a cloud. In such case a server provider should have a specific solution. For example a specialized server in the same private network as your server, with publicly known host keys. You can connected to this specialized server and from it, securely connect to your server (e.g. using SSH terminal). As you are connecting within private network, you can safely trust any host key. Once connected to your server, acquire its host key. With that you can finally connect directly yet securely over a public network. Alternatively, the server provider can provide the host key via some administrative interface. For example see a solution for Amazon EC2, Google Compute Engine or Microsoft Azure.

Last modified: by martin