SSH is undoubtedly a useful tool and the iPhone and iPod Touch are great portable ways of connecting to networks; put both together you can be a sysadmin on the move! So what are the options for this? The Apple AppStore has a few SSH clients, I decided to take three - SSH, iSSH and TouchTerm - out for a spin.
First up is SSH, marketing at $3.99 (£2.39). Opening the program greets you with a screen where you can type in an address to connect to in the form
user@hostname:port (the address is added to a list on the first screen so you don't have to type it next time). Once this has been entered you're presented with a password entry screen, although you have to press the password entry box to get a keyboard.
If this is successful you get a retro green monospace on black terminal, with a white command line bar at its bottom. This white command line is the only way you can send commands over ssh, you press it to bring up a keyboard with which you type your command and press 'Send'. This command is then echoed to the terminal and executed. Basic shell commands work well, but once you want to use
some basic programs such as
man problems start to show.
Navigation is the main problem with these programs through this client, I'm used to using the arrow and return keys to navigate them (I know there are other ways, but these are the ones I remember). The client has no emulation of arrow keys, so we lose that form of navigation and there is no return key on the keyboard. After looking up some of the other navigation commands available for these programs I was able to navigate them quite successfully, but the process of touch command bar->type command->send for every bit of navigation felt very tedious.
Another basic command I tried and expected to work was
top, but alas SSH fails again and produced this output:
which is hardly usable. You can try and scroll the output, using screen swipes, but each time top refreshes your scrolling is lost.
As arrow keys are not implemented command line history is harder, meaning you have to type in commands to access your history, which is annoying and slow if you are using SSH's input method.
The client allows you to use control commands using the ^ key, so Ctrl-C becomes ^c. This works and is functional, but to reach the ^ key you have to go through two keyboards, which is annoying. Why can't there be a Ctrl button on the screen ready for me to use whichever keyboard I'm in?
Disappointed with SSH I went on to try iSSH (marketing at $4.99 or £2.99). When you start it up for the first time you must add a connection configuration. This is a form where you fill in a name for the configuration, the hostname and at your choice a username and command to execute on connection.
With a configuration now saved I could choose to connect to it. This dropped me into a terminal where
ssh asked me for a password, the bottom half of the screen is filled with a keyboard which types directly into the console. The terminal used is much better than the one SSH used, it has a gray monospace font on a black background, and it supports colours which makes using such a small screen more bearable.
There is a bar above the terminal which contains buttons for the Ctrl, Alt, Esc, Tab, F# and Shift keys (which can be used in combination), along with a keyboard toggle and exit. This allows you to use niceties such as tab complete on the command line, a great time saver when using the iPhone's user input. Being able to toggle the keyboard is rather useful if you wish to read a file using
less; you can invoke
less then hide the keyboard giving the whole screen to the file which you can navigate using the emulated arrow keys.
Seeing that SSH had been so abysmal when I tried to run
top I tried to run
top on iSSH, which produced this result:
top is usable using iSSH. Running
man was also successful using iSSH, which gives access to arrow keys through swiping the left 2/3 of the screen, and the keyboard has a return key (the right 1/3 of the screen is reserved for scrolling). This means you can also use the arrow key
emulation to scroll the command line history.
Tilting the device the appropriate way will change the display from portrait to landscape, which is a neat feature, especially useful if you're reading files as you have width in the screen.
Multiple sessions are supported by iSSH, after you've hit the exit button your session doesn't disconnect, you're dropped into a list of open sessions, from which you can choose which session to see on the screen or you can go back to the main opening screen to connect to a new session. Within your sessions you can swipe horizontally to move to different sessions, like one does on the iPhone's main menu screen; this usually works well but sometimes it gets tangled up with scrolling swipes which ends up with you in the wrong session and scrolled up too far.
TouchTerm is the cheapest of this bunch at $2.99 (£1.79), and is based OpenSSH and OpenSSL. The opening screen allows you to connect to servers and manage your connections. You can connect as a 'One-Time Connection' or you can save a connection profile for future use (these profiles can also be edited in the future if you want).
There is a settings page which allows you to configure how text is entered, the display and security. One of the choices under text entry is whether or not to enter code directly into the terminal, if you choose not to all the text you enter goes into a text box before it's echoed to the terminal. There are numerous display settings, among which are colours for the cursor, foreground and background, as well as the font size. For security you can set options for how keys are kept and whether or not to save passwords.
Once you've chosen a connection to make and you've connected with the server you are presented with a white text entry box where you enter your password, below which is the standard terminal
firstname.lastname@example.org's password:prompt. The password letters are echoed for a few seconds in the textbox before turning into a *, helping you know if you've mistyped on the onscreen keyboard.
Above the terminal is a bar with some extra buttons, 'Clear', 'Ctrl', 'Tab' 'Esc', a button for starting arrow key emulation and one to go to the settings page. The arrow key emulation is rather neat, it overlays four translucent arrow keys above the terminal, which makes things such as accessing command line history navigation rather nice.
The terminal emulator used doesn't seem to support terminal colours, so running e.g.
ls --color doesn't work, even though you can set colours for the foreground and background, rather annoying.
Running standard programs using TouchTerm is successful although it does feel a bit sluggish.
top for instance displays quite well, but when interacting with TouchTerm's controls there is a delay between pressing/swiping/whatever and the action taking place. Running
less works, however there's a second or two delay for the cursor to jump to the bottom of the screen after you've navigated, which makes the experience feel clunky.
TouchTerm can be used in both portrait and landscape modes and the keyboard can be hidden/unhidden by just tapping a couple of times on the emulated terminal. Scrolling is done with swipes of the screen, but this allows you to scroll off the edge of the terminal emulator giving you an ugly gray background, however once you've released your swipe the terminal will reposition so that it's edges and the screen's edges match.
Comparison chart of the clients:
In terms of functionality iSSH and TouchTerm beat SSH hands down. Depending on what the user is looking for in their
ssh client will decide on if they prefer iSSH or TouchTerm. The former has the feature of multiple sessions and supports terminal colours properly, while the latter seems slightly more user friendly with the font size configuration and profile editing. Both make
ssh usable on the iPhone.
UPDATE Added review of TouchTerm and updated the review of iSSH to cover version 1.1 (from 1.0).