SSH into your jailbroken iDevice without a password
If you are developing for/on a jailbroken iPhone or iPad you are more than likely going to have to SSH into your iDevice a number of times. This includes transferring files to/from the device via SCP. Entering a password every time you have to SSH into the device is very tedious. Moreover, this becomes imperative if you need automation scripts to SSH/SCP into the device
This post explains how you can enable public-key authentication with SSH in order to bypass the password entry process. Note that enabling password-less entry into your iDevice is a potential security risk because anyone with access to your system can now access/control your device without any authentication. So if you enable this, be sure to secure access to your systems!
The steps to enable public-key authentication with the iPhone/iPad are no different than with any UNIX system.
The following commands need to be executed on the system from which you would be SSHing into your iPhone/iPad.
If you are using a Mac or a Linux system, the commands are executed from the terminal window. If you are using a Windows PC, you would have to run these commands within Cygwin.
- Go to the .ssh folder
MyMacBook-Pro-2:~.mactester$ cd ~/.ssh
- Generate public/private key-pair by running the ssh-keygen command. You will be prompted for some information. You can leave the file to save the key as default. Enter a passphrase . You will be prompted for the passphrase when you try to access your key.
MyMacBook-Pro-2:.ssh mactester$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/mactester/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/mactester/.ssh/id_dsa.
Your public key has been saved in /Users/mactester/.ssh/id_dsa.pub.
- A public/private key pair would have been generated in the .ssh folder. The .pub file corresponds to the public key.
MyMacBook-Pro-2:.ssh mactester$ ls
id_dsa id_dsa.pub
-
Copy the PUBLIC KEY over to the ~/.ssh folder of your iPhone/iPad (in this example, the IPAddress of my device is 192.168.1.10)
MyMacBook-Pro-2:.ssh mactester$ scp id_dsa.pub root@192.168.1.10:~/.ssh
The following commands need to be executed on your iPhone/iPad.
For this, you can SSH into the iDevice (You would still be prompted for a password at this stage) or you can type in the following commands directly in the terminal application window of your jailbroken iDevice
- Save the public key as “authorized_keys”. If you already have public keys associated with other systems stored on your device, be sure to append the public key to “authorized_keys2” as shown in the example below. Make sure you set the right access permissions on the key.
MyiPhone:~root# cd ~/.ssh
MyiPhone:~/.ssh root# cat id_dsa.pub >> authorized_keys2
MyiPhone:~/.ssh root#chmod 0600 authorized_keys2
That’s it. The next time you SSH into your iDevice, you will not be prompted for a password.
4 comments
Trackback e pingback
-
Accessing your iPhone’s HDD the smart way. | Pollackphoto.net
[...] can follow those directions to a t and be good to go, but I’ve taken one extra step: I…
Great tutorial! I think that you meant chmod 0600 authorized_keys2 instead of chmod 0600 authorized_key2 on the last command. Thanks
Thanks! Yes- its authorized_keys2. Have edited the post to reflect the change.
Can you do the opposite and generate keys on the iPhone? For passwordless logins from iPhone to remote systems that have my iPhone public key?