SSH
(→On-device Usage: reformat slightly) |
(→Usage: reformat list) |
||
Line 41: | Line 41: | ||
=== Usage === | === Usage === | ||
- | # Load up PuTTY on the machine you want to connect to the tablet from. | + | # Load up PuTTY on the machine you want to connect to the tablet from. You should see the window titled "PuTTY Configuration" and the "Session" category selected. |
- | + | ||
# Ensure "SSH" is selected as the "Connection type:" and enter <code>the tablet's ip</code> in the "Host Name (or IP address)" section. | # Ensure "SSH" is selected as the "Connection type:" and enter <code>the tablet's ip</code> in the "Host Name (or IP address)" section. | ||
# ''If'' you need to change any other settings out of necessity or personal preference for example, go and change settings as required. | # ''If'' you need to change any other settings out of necessity or personal preference for example, go and change settings as required. |
Revision as of 10:23, 28 June 2010
SSH (Secure SHell) is a network protocol that allows you to access a terminal shell remotely. The following use-cases are common:
- Administrating remote computers such as servers by using the device over a secure connection instead of plain-text.
- When performing console operations one may stumble upon limits such as text-input, battery life, raw horsepower, or available software.
- Some applications require a better network connection than device provides. E.g. a colocated 100 mbit server running 24/7 is usually both faster as well as more reliable than a device on WiFi or 3G.
- Combined with a terminal emulator supporting detaching such as screen or dtach an application remains running after network connection is gone, device is unpowered.
- SSH protocol can be used for remote X11, forwarding, tunneling, VPN, port knocking alternative. These are intermediate-advanced topics requiring sufficient background knowledge.
Contents |
Flavours to install on your device
OpenSSH
OpenSSH is the most common client and server package. It is available in Extras. You can install either only the client or server, or both depending on your particular use-case. Be aware that the installation may take a while and appear frozen, as SSH keys have to be generated during the install.
Also the server install asks you to set a new password.
Dropbear
Dropbear is an alternative ssh client/server package which uses less disk/memory.
On-device Usage
Client
To allow you to use your tablet/phone to connect to other machines. You can connect to a remote machine from the tablet by running
ssh user@server ip
which will give you a remote shell on the server machine.
Server
To allow other machines to connect to your tablet/phone. If you wish to access a shell on the tablet from a remote machine (to edit a local file with a real keyboard, perhaps), then all that you need to do is make sure OpenSSH server is installed on the tablet and
ssh root@tablet ip
Note that N900's are called "Nokia-N900-41-10" if allocated an IP address via DHCP (see this bug)
PuTTY
PuTTY is a client for the SSH & [the abysmally insecure] Telnet protocols. It is a popular client for Microsoft Windows, *Nix Operating Systems with ports even existing for Symbian phones, Windows Mobile and even the internet tablet itself. It can be used to connect to a tablet running OpenSSH to get a remote shell.
Usage
- Load up PuTTY on the machine you want to connect to the tablet from. You should see the window titled "PuTTY Configuration" and the "Session" category selected.
- Ensure "SSH" is selected as the "Connection type:" and enter
the tablet's ip
in the "Host Name (or IP address)" section. - If you need to change any other settings out of necessity or personal preference for example, go and change settings as required.
- If you want to save these settings for future use to connect to the tablet quickly, add a name in "Saved Sessions" and press Save.
- Press Open and enter the name of the user you wish to connect as when prompted. (root is commonly used)
Extra security AND convenience
It is fairly easy to generate a secure key to allow key-based authentication to the device. Provided you keep the key secure this is more secure than using a UNIX password (PAM).
First, make sure you can use SSH to log in to your remote *NIX computer's user account.
On the device you need to create a directory in the appropriate users home directory:
cd mkdir .ssh chmod 700 .ssh
Back on the remote *NIX computer run the following command:
ssh-keygen -t rsa
You'll find a file in your home directory called .ssh/id_rsa.pub and .ssh/id_rsa The .pub one is allowed out in public - you give it to other machines. The other one must be kept private.
In the case your private key is stolen (ie. device stolen) the perpetrator has access to your machine without requiring a password. It is therefore recommended to use a password when issuing ssh-keygen command. Note this password must [i]not[/i] be the same as your UNIX password.
Then if you use OpenSSH:
su -c "scp .ssh/id_rsa.pub <user>@<hostname_or_ip_address:/home/user/.ssh/authorized_keys2"
alternatively, use ssh-copy-id (it makes sure all permissions are correct on the receiving end):
ssh-copy-id -i .ssh/id_rsa.pub <user>@<hostname_or_ip_address>
For dropbear:
su -c "scp .ssh/id_rsa.pub <user>@<hostname_or_ip_address:/home/user/.ssh/authorized_keys2"
This will ask for your UNIX password to copy across the key.
Now try:
ssh <user>@<hostname_or_ip_address>
and you should just get a shell login. If usernames on local and remote machine match you can omit the user@
part.
VPN, tunneling
Please see howto Tunneling out of corporate networks (Part 1). Alternatively, reverse ssh may be useful.