Question about SSH host key algorithms
The principle of SSH is to implement secure (i.e. confidential and authenticated) communication channels in a client–server session. The new release of SSH (known as SSH2) uses public-key infrastructures in order to authenticate servers. This is typically heavy stuff, but the user can easily bypass it: he just has to click “OK” anytime there is a ,security warning.

SSH2 uses DSS for server authentication and Diffie-Hellman key agreement for setting
up a symmetric session key (previous versions were entirely based on RSA). Both
are based on some generator g which generates a subgroup of Z∗
p of prime order q.


The client picks a random ${x ∈ \{1,..., q − 1\}}$, computes ${e = g^x mod p}$, and
sends it to the server.




The server picks a random ${y ∈ \{1,..., q − 1\}}$, computes ${f = g^y mod
p}$ and ${K = e^y mod p}$.


Now server computes the Hash H using various other values and signs it, ${s=sig(H)}$.where ${K_S}$ is his public key, and sends
${K_S}$, f , and the signature s to the client.  This H could be generated from SHA-1.
Now, When you connect to a machine for the first time you will be told that the authenticity can't be established and presented with a key fingerprint to check.
This fingerprint is generated from the server public key may be SHA1 or SHA256.
you can use:-  $ ssh-keygen   -lf   ~/.ssh/id_rsa.pub