The Secure Shell


Use at your own risk!!! Commands, procedures etc. described in this page worked for me. That does not mean they will automatically work for you.

What is Secure Shell(or SSH)?

SSH and the resulting protocols facilitate access to systems running the SSH server application. This allows a user the run applications on the server, copy files to and from the server, logon to the server (although this is also considered running an application) and more.

One definition:

In computing, Secure Shell or SSH is a set of standards and an associated network protocol that allows establishing a secure channel between a local and a remote computer. It uses public-key cryptography to authenticate the remote computer and (optionally) to allow the remote computer to authenticate the user. SSH provides confidentiality and integrity of data exchanged between the two computers using encryption and message authentication codes (MACs). SSH is typically used to log into a remote machine and execute commands, but it also supports tunneling, forwarding arbitrary TCP ports and X11 connections; it can transfer files using the associated SFTP or SCP protocols.

SSH Client Software

Client software is more or less devided in 2 types, one facilitating console or shell access (SSH) and one facilitating file transfer (SCP/SFTP).

Under unix these are primarily handled by OpenSSH. Windows has a number of options the most popular being the PuTTY (SSH) and WinSCP (SCP/SFTP) clients. These are free and can use the same set of SSH keys to authenticate to the server.


PuTTY is a simple SSH Client I have used for many years a works best for me. It has little if any features (e.g. no built in server for X applications) but is is portable and simple to use.

SSH key authorization

In short:

  • log into the system ssh user@remotehost
  • create the needed directory mkdir $HOME/.ssh; chmod 700 $HOME/.ssh
  • create the authorized_keys file vi $HOME/.ssh/authorized_keys