Public Key, Private Key

If you use ssh (Secure Shell) with public/private keys, here is a quick reference. The private key stays on the computer you will connect/send from. The public key goes on the computer(s) you will connect/send to. You can think of the private and public keys as a signature of the sending computer, and they are used to validate/authenticate the sender. (Keys are also affiliated with the user account that creates them.)

Create the public key, private key pair:

ssh_keygen -t rsa

I used RSA encryption here. You can also use DSA. This generates two files: id_rsa (private key) and id_rsa.pub (public key). Move id_rsa to your .ssh directory.

mv id_rsa ~/.ssh

Copy/send id_rsa.pub to the .ssh directory on the computer you will connect to.

scp id_rsa.pub receiving_username@receiving_domain.com:~/.ssh

Add id_rsa.pub to the authorized_keys file on the receiving computer.

cat id_rsa.pub >> authorized_keys

That is essentially it. Now when you connect from the computer with the private key to the computer with the public key, you will be using a secure connection.

To take this one step further and simplify connection commands, you can add an IdentityFile directive to a ssh config file. This allows you to use the keys along with a known, well used username to connect to the receiving_domain computer more quickly.

Create a config file in your .ssh directory (litterally named config) if you don’t already have one. Add the reference to the private key.

Host receiver
    User: receiving_username
    IdentityFile: ~/.ssh/id_rsa

Then, when you connect, you can issue the command

ssh receiver

and it will ask for the pass phrase (not password) you supplied when you created the private key.

 

Dick and Rick Hoyt: Ironman


Team Hoyt and the Hoyt Foundation