I recently setup my first Ubuntu server, it's 14.04, and I'm trying to secure SSH. I've googled around for numerous guides and there are many good ones that go into great detail about how to setup a private/public key pair so that you can safely log in to your server. If I'm correct I believe these keys only handle authentication and I'm interested in trying to setup strong encryption for SSH.

I believe when the SSH server is installed the keys for encryption are placed in /etc/ssh under names like ssh_host_*_key. Assuming everything I've said so far is correct I have two questions:

  1. Why are there 4 keys? The files seem to be named after different key generation algorithms but I'm not sure why you wouldn't choose an approach and only have the one key that corresponded to that approach. Are all used? Is there a way to specify which is used?

  2. Are the default generated keys secure? When I was making the authentication keys I read much about how some algorithms were secure and some were not. Should I regenerate these encryption keys somehow using a certain set of parameters?

I know I'm noob, thank you for helping to educate me.

  • 2
    Please don't ask multiple questions in a single post. Pick one of the two and post the other one as a separate question. Also, for Q2, please explain your needs. Security depends on context. It's not the same thing to secure a home server as it is to secure a professional system.
    – terdon
    May 10, 2014 at 23:03

1 Answer 1


The ssh connection is encrypted already. "Keys" are used for several things and yo are confusing the host keys with login (athentication).

The host keys are used to identify the server.

You can log in several ways, password, Kerberos, or keys.

See: http://bodhizazen.com/Tutorials/SSH_overview


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .