SSH Public Key Authentication

This is a simple guide to getting SSH public key authentication to work on your iPhone/iTouch device. It assumes you already have the SSH Daemon running and of course the BSD subsystem installed, or you won’t get very far!

  • Step #1 – Generate your public/private key-pair on the host machine.

If you do not specify -b 2048, a default value of 1024 will be used. This specifies the bit size of the key.

ssh-keygen -t rsa -b 2048

Example output:

Generating public/private rsa key pair.
Enter file in which to save the key (/usr/home/username/.ssh/id_rsa):
Created directory '/usr/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /usr/home/username/.ssh/id_rsa.
Your public key has been saved in /usr/home/username/.ssh/id_rsa.pub.
....
  • Step #2 – Upload the public key to the remote device(iPhone/iTouch). The public key is how the remote device authenticates against your private key.
scp ~/.ssh/id_rsa.pub [email protected]<insert the ip of your iPhone/iTouch here>:~/authorized_keys

Example if your remote ip is 192.168.1.2:

scp ~/.ssh/id_rsa.pub [email protected]:~/authorized_keys
  • Step #3 – on your remote device. Perform the following commands.
mkdir -p ~/.ssh;
chmod 0700 ~/.ssh;
mv ~/authorized_keys ~/.ssh/authorized_keys;
chmod 600 ~/.ssh/authorized_keys;
chmod go-w /private/var/root;
  • Step #4 – Login to your remote device without typing in a password anymore and enjoy!
ssh [email protected]<insert the ip of your iPhone/iTouch here>

Example if your remote ip is 192.168.1.2:

ssh [email protected]