Generating keys

From Noisebridge
Revision as of 10:44, 17 December 2010 by Jack (talk | contribs) (added link to guide book / fixed my own dumb spelling)
Jump to: navigation, search

This is a tutorial for creating keys for use with pony. It is necessary to have a working key to connect to pony via SSH. For a good (nonfree) introduction to cryptography, see [| Cryptography Decrypted]

Generating the key

The command:

ssh-kegen -t dsa

will generate a DSA key pair that we can use to authenticate ourselves.

After pressing enter you'll be asked for a file location, with a default name of id_dsa located in your '/.ssh/' directory. It's a good idea to give it a useful name (for our purpose, 'pony' will do). You'll also be asked for an optional pass phrase for the key. You can skip this by pressing enter if you like.

You'll now have two files, 'pony' and '' in your '~/.ssh/' directory:

-rw------- 1 switch switch  736 Dec  7 04:46 pony
-rw-r--r-- 1 switch switch  602 Dec  7 04:46

Notice that '' is world readable, but the (private) pony key is only readable by you, the owner. Feel free to write your public key down on your wiki user page, your tax returns or your favorite bathroom stall.

Configuring Your SSH

We've got our keys, but we need to let SSH know which hosts we want to use what keys with. We'll need to edit the user config file for ssh, located in '~/.ssh/config' (If this file doesn't already exist, go ahead and create it there)

We'll need to add these lines:

Host pony | pony.local
   ForwardAgent no
   ForwardX11 no
   IdentityFile ~/.ssh/

This defines a new hostname for ssh, sets some options for our security (no forwarding) and links this host to the key we generated.

Configuring Pony

You'll need some help for this next part; Specifically, someone who's listed on pony's sudo list. They'll need a copy of your public key ('') and the best place for that is on your wiki user page! You can just copy paste the text inside the key file.

The key string goes inside a file called 'authorized_keys' located at '~/.ssh/authorized_keys' on pony. This is where the remote SSHd will check for a public key to match the one you're sending. You can have multiple keys in this file, meaning you can have a separate private key for each machine you wish to connect from.

You should be good to go! Try logging in with 'ssh username@pony' ! You'll have to accept the host's key the first time, but no password should be required.

Pony is currently setup to disallow password authentication, and therefore you'll need to authenticate via a public key.