SSH

Line 74: Line 74:
[[Category:Users]]
[[Category:Users]]
[[Category:Connectivity]]
[[Category:Connectivity]]
 +
 +
[[Category:Power users]]

Revision as of 12:14, 1 November 2009

SSH (Secure SHell) is a network protocol that allows you to access a terminal shell remotely. The following use-cases are common:

  1. Administrating remote computers such as servers by using the device over a secure connection instead of plain-text.
  2. When performing console operations one may stumble upon limits such as text-input, battery life, raw horsepower, or available software.
  3. 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.
  4. Combined with a terminal emulator supporting detaching such as screen or dtach an application remains running after network connection is gone, device is unpowered.
  5. 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.

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. This 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

  1. Load up PuTTY on the machine you want to connect to the tablet from.
    1. You should see the window titled "PuTTY Configuration" and the "Session" category selected.
  2. Ensure "SSH" is selected as the "Connection type:" and enter the tablet's ip in the "Host Name (or IP address)" section.
  3. If you need to change any other settings out of necessity or personal preference for example, go and change settings as required.
  4. 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.
  5. 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:

scp .ssh/id_rsa.pub <user>@<hostname_or_ip_address>:.ssh/authorized_keys2

For dropbear:

scp .ssh/id_rsa.pub <user>@<hostname_or_ip_address>:.ssh/authorized_keys

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 [i]user@[/i] part.

VPN, tunneling

Please see howto Tunneling out of corporate networks (Part 1).

Retrieved from "http://wiki.maemo.org/SSH"