Low Orbit Flux Logo 2 F

Generate SSH Key

Generating ssh keys can be the first step towards faster logins and improved productivity. It also helps to improve security.

Generating RSA Keys - Basic Setup

Generate Key Pair

Create the .ssh directory inside your home directory if it doesn’t exist already. Make sure the permissions are set correctly. Then, run the ssh-keyugen command to generate an RSA public key and an RSA private key pair.


mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Your public key will be here:
.ssh/id_rsa.pub

Your private key will be here:
.ssh/id_rsa.pub

Stronger Key - optional

If you want a stronger key you can specify the bits. The default is 2048. You can double that witht he following command. Instead of using the ssh-keygen command shown above, use this version of the command with the ‘-b 4096’ option.


ssh-keygen -t rsa -b 4096

Transfer Client Key to Host


ssh-copy-id <username>@<host>

ssh-copy-id "<username>@<host> -p <port_nr>"

Works if you have password auth but not if you are already using a key with password auth disabled.


cp authorized_keys authorized_keys_Backup 
cat id_rsa.pub >> authorized_keys
chmod 600 ~/.ssh/authorized_keys

Disable password Authentication

/etc/ssh/sshd_config


PasswordAuthentication no

Make sure these are set ( should be already ):


PubkeyAuthentication yes
ChallengeResponseAuthentication no

Reset SSHD after making changes:


sudo systemctl reload sshd

Encrypted Home Directory

/etc/ssh/

/etc/ssh/sshd_config


AuthorizedKeysFile    /etc/ssh/%u/authorized_keys

sudo service ssh restart

Stuff That Can Go Wrong

Disabled in Config:

Should be already set on default Ubuntu install:

/etc/ssh/sshd_config


PubkeyAuthentication yes
RSAAuthentication yes

Check status:


sudo service ssh restart

Permissions:


chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Client not picking up keys: If you see an error like this:

“Error: Agent admitted failure to sign using the key.”

It probably means that the client agent hasn’t yet picked up the key, even though it should have. Try this to make it pick up the key:


ssh-add

More Debugging: On the server, you can start the SSH daemon in debug mode to see output.


sudo /usr/sbin/sshd -d

On the client you can use the ‘-v’ or ‘-vv’ switch for more verbosity. This will show more information and hopefully give you more insight into what is going wrong.


ssh -v ( or -vv) username@host's