iPhone SSH review: iSSH v. pTerm v. TouchTerm v. SSH
UPDATED Thu Sep 11 07:28:27 EDT 2008: Updated for TouchTerm 2.1 and iSSH 2.0 (which is held up by a glitch in the AppStore but should be there soon). Both are very strong updates. Also, planning a full revamp of this overly long in the tooth page.
UPDATED Wed Sep 3 08:59:26 EDT 2008: Updated for pTerm 1.2. New hard keys at the top (esc!), key management and custom terminal sizes (amongst others).
UPDATED Fri Aug 22 07:46:26 EDT 2008: Updated for iSSH 1.1. It now allows for multiple simultaneous connections which may make it the app for some. For me, I still slightly prefer TouchTerm.
UPDATED Thu Aug 21 07:46:46 EDT 2008: Updated the TouchTerm section to cover the new version 2.0. In short, this is now the best ssh client for the iPhone.
UPDATED Tue Aug 19 07:11:56 EDT 2008: new client SSH reviewed at the bottom of the page. Also added an image of the landscape problem in iSSH.
It has been awhile coming but there are finally not one, but three reasonable SSH clients for the iPhone. As web developer I’ve been waiting for this to happen ever since I switched to the iPhone from my Treo. It’s not like you’re going to be doing extensive coding on the phone, but for quickies and emergencies it is a comforting application to have at the ready.
I grabbed iSSH (
1.0 1.1 2.0), pTerm ( 1.1 1.2) and TouchTerm ( 1.1 2.0 2.1) and ran them through their paces. The executive summary is that none of them are perfect – each has its particular strengths and weaknesses – I’ll probably keep them all and watch as they update but at this instant I will most likely fire up either TouchTerm or iSSH, much less likely to bring up pTerm (don’t even bother checking out SSH). All three, though, are improving at breakneck speeds so I’m keeping ‘em all around.
First up, the pricing for all of them is incredibly reasonable. $4.99 for pTerm and iSSH, $3.99 for SSH and an even cheaper $2.99 for TouchTerm. This was vaguely surprising to me because it seems like if you are one of the very few people who want or need ssh on your phone, you are most likely also going to spend almost whatever it takes to purchase the app. Still, it certainly made it an easier decision to grab all three to find the best one.
All of them work very well over WiFi and less well over EDGE, but are still usable. There is some kind of crazy DNS quirk that affects them all so that if you use it on WiFi and then switch to EDGE, they can’t find the server. You need to open up Safari for a second and then go back to fix it.
Thanks to Apple, since no apps can be in the background, you can’t use any of these and another app simultaneously, leaving the app will end your connection. Which kind of limits usability for web development. This is a little long so read my specific thoughts on each one after the jump.
iSSH (updated to review version 2.0)
iSSH with 2.0 is nearly just right. What I love most about it and that it has head and shoulders above the other apps is a nice crisp tiny font (it now even gives you a choice of 3 different fonts so you can find just the right one in the size you most prefer – I like ProFonts in the smallest size). In portrait mode it clocks in at around 54 usable columns. What it also does very wonderfully is automatically size the terminal so when I am in the smallest font size it knows how many columns to use and makes the terminal the correct width in portrait and landscape modes. No scrolling necessary coupled with a very usable width (even if it isn’t the more traditional 80 columns) makes this very user friendly.
Another very cool thing it has is gestures – it’s partitioned the screen so that the right edge of the screen (sorry lefties?) waits for vertical swipes to scroll the screen up and down. The nice part is that main area of the screen waits for swipes in any direction and translates that into the arrow keys – so swipe right and get a right arrow press, swipe down and get a down arrow press, etc… This is quite nice. With all these different areas you do have to get used to where to swipe, but once you do it’s pretty nice – I can see though how some folks might find it more annoying than useful.
In addition to the great font selection, the other main feature that iSSH has over others is that it supports multiple simultaneous connections. So you can connect to several machines (I only tested it to three, only because I’m lazy). You can switch through them like you switch desktops on the iPhone app launcher – you swipe left or right at the bottom of the screen and it slides horizontally between them, except it’s better because it tells you the name of the connection you are on each time you switch. Or you can hit the “x” in the hard keys menu at the top and it will bring you to your list of open connections and you are a click away from adding in new ones or going direct to an existing one. The 2.0 update seems to have made this a little less reliable, with two connections it was fairly common for me to hang the app either by swiping or by heading to the connections screen. I’m sure this will be fixed quickly, though. It is a fantastic feature very well implemented – swiping to move screens is the cat’s meow.
It has several hardcoded buttons across the top of the screen for exit, ctrl, function keys (F1 – F9), shift and tab. It’s currently the only app to have F-key support. It has added in the ESC key to the list which is great. One thing I don’t love, although I have no solution for, is that the key menu at the top has enough options that you have to scroll left or right through them. And when you scroll you only move one button at a time. I’d love a system where I could customize the order of the buttons – but the good news (for me, at least) is that the first 4 buttons you see are ctrl, alt, esc and tab – the main ones I need.
Annoyingly, you must save any connection you make – so if you need a quick ad hoc connection you have to create a saved one and then delete it later (by swiping it in the menu list).
It has also added in key generation. In a one-upping of TouchTerm in addition to emaling you the generated public key you can also send it directly (via ssh, natch) to the servers of your choice. If you’re all iPhone trying to set this up, it’s a very convenient way to do it. Another neat thing about it is it asks you to rub an little patch of screen to help generate randomness – I’d love to see that move to using the accelerometer, but it’s still very cool. It only allows for a single public key (which totally suffices for my needs), but for those who like to have more, TouchTerm supports multiple assigning particular keys to particular connections.
With this release it introduced transparent keyboards. For now this only works in landscape mode and basically it makes the keyboard transparent so you can see a full screen of terminal. You have to hit the keyboard hard button at the top menu several times to get to this mode as well. In general, TouchTerm handles hiding/showing/transparenting the keyboard more elegantly than iSSH does. I’m not sure how much I love this, I keep thinking once you get used to it it will be the most amazing feature ever, but as yet I haven’t gotten accustomed to it.
It also has a pretty serious problem in landscape mode – it doesn’t resize the number of rows so the cursor is generally always at the bottom of the screen – hidden by the keyboard. So if you have the keyboard up you generally can’t see what’s happening, if you’re running transparent it won’t matter, though.
pTerm (updated to review version 1.2)
The very close second, pTerm suffers from its lack of a usable small font. By default it uses a pretty sizeable font which shows about 36 columns of text. You can pinch to zoom out, but it quickly becomes illegible since it’s just doing a graphic resize of the text. It does, however, provide flawless horizontal and vertical scrolling in both portrait and landscape mode. Swiping anywhere on the screen sends it scrolling in the expected direction and in landscape mode the default text size provides a very usable 56 columns (unfortunately, only 6 rows, though, with the keyboard occupying a ton of space).
It provides hardcoded ctrl, tab and esc buttons for easy access at the top of the screen. An ellipsis button provides access to hard arrow keys. Pretty much, those are the essential keys and it’s great to have easy one touch access to them. Like iSSH, this will save your connections (and not allow for ad hoc connections) and they will now remember your login name if you want. It also provides a means to create telnet and raw TCP connections – but when I tried using both of these to connect to a webserver on port 80 it hung both times, I’m not sure why. Perhaps, I did something wrong. Other than that there weren’t any real problems with this app – it’s just the fonts were simply too large for my needs.
pTerm is now the first to provide a customizable terminal size, when you setup or edit a connection you can set the number of rows and columns to support. I have one connection set to 36 columns by 12 rows which is the screen size of portrait mode with the keyboard up (you can hide the keyboard by double tapping the screen) – this is particularly useful some editing since you won’t have to scroll left or right to see the entire screen. If I need to bust out mutt, for example, I’ll mostly end up using pTerm for the customizable term size.
It has also added key management so it will generate an RSA (or DSA if you’re so inclined) key for you and mail it out to you so you can add it to whatever accounts you need to. It is the only app to include logging so you can, essentially, record an entire session. I’m not sure what I’d use that for but I bet there’s some folks out there that have been jonesin’ for such a thing.
TouchTerm (UPDATED to review version 2.1)
TouchTerm continues to be the most configurable app, allowing you to set the font size, the colors (background, text and cursor) among other variables.
In addition to the typical immediate response mode that the others use of sending text to the server character by character, it has a buffer mode where you enter all your text first into an iPhone buffer and only when you are ready does it send that to the server. Initially I kind of hated that, but I can see it’s uses, if you are composing a complex commandline, it is much easier and faster to edit locally on the iPhone to get it just right before sending it, then having edit over the wire on the remote server. Obviously, you can also go into immediate sending mode which will turn off this buffer.
TouchTerm has the best keyboard and screen management of all the apps. At the basic level you can tap the screen to hide or show the keyboard. This is super easy and super useful for quickly getting an eyeful of the screen before going back in to enter more text. It also has “Full Screen Mode” which gives you a little extra space by getting rid of that top iPhone bar with the clock and battery life in it.
Part of this keyboard management is allowing for keyboard transparency. You do have to go into the on screen preferences to turn on transparency but there you can also set exactly how transparent you want it to be, which is pretty useful. The “Full Screen Mode” also sets transparency on the hard keys (ctrl, esc, etc… see below for more details). TouchTerm really has thought about giving you ways to maximize your screen real estate.
Like all the apps now it has a bunch of hard keys at the top of the screen. Here you have ctrl, alt, tab, esc, ret, ctrl-c, the arrow keys and interestingly function keys 1-12. It gives you a lot more. It also, instead of scrolling through the list as iSSH does it pops down a full row of all the buttons over the screen. It uses transparency to leave them there (so you actually just toggle them on and off with the buttons). It’s personal whether you prefer this over the iSSH version, personally I prefer the iSSH because the keys I use 90% of the time are ctrl and esc and they’re always there in a minimum of space. If you use more, though, this may be just the thing.
Definitely of interest to some will be the key based authentication and management. You can generate a key pair, email yourself the public key and associate the private key with any of your connections. It is the only app to allow for multiple keys and associating each connection with a specific key. This worked flawlessly when I tested it out. You can easily swipe to delete any of your keys.
Lastly, it now easily has the best connection screen. It maintains, of course, a list of saved connections where you can specify the server, the port, username as well as an optionally saved password or key to associate with it. But beyond that it has a Quick Connect area which puts the last saved connection you used as well as a “one-time connection” which lets you specify all of the above, but doesn’t actually save it. Perfect!
The primary problem remains that the font size is useful primarily down to about 40, 41 columns in portrait mode, below that it starts to get quite fuzzy. I’d love to see a better tiny font.
(You can check out the TouchTerm 2.1 guide if you’re interested.)
With the latest two versions of TouchTerm and iSSH at this point they are neck and neck. For the way I’ve been using SSH I’ve been pulling up iSSH more frequently – I love the increased real estate provided by the small fonts and the hard keys that are just the one I need. I personally don’t really use multiple connections much, so that wasn’t the draw. TouchTerm, though, does offer the most unique experience. I think some folks will really prefer the way TouchTerm handles transparency and what not to make full use of the screen. I can heartily recommend both of these apps and trying them both out to see which you prefer. I mean, come on, it’s $8 to try ‘em both!
I think you can’t go wrong with any of them. TouchTerm is the quirkiest of the bunch and that quick may be a pro or a con based on your needs. iSSH and pTerm are much more classic clients and you won’t really be surprised by what you get. Have you tried any? What do you think?
UPDATE: So I saw that SSH was added as a new client to the App Store, figured for $3.99 it was worth checking out. I shouldn’t have bothered, it is easily the worst of the four ssh clients. It’s terminal emulation is terrible, not really possible to run mutt or vi in this bad boy. It does have a decent small app and it tells the server that it’s width is only as many chars wide as it can show so it wraps at the edge of the screen – no horizontal scrolling necessary, which is pretty interesting.
It does this crazy buffering thing where like that mode in TouchTerm it has a command entry box that you type in one command at a time. But unlike TouchTerm this thing minimizes the keyboard after every command, so you go full screen in between everything you type, it’s a little nauseating. Also, it doesn’t have any command history like TouchTerm does, so as far as I can tell, it just isn’t a good input method. It has an odd, but decent page where it basically remembers everywhere you’ve logged in to as a user@host type string.
This app just isn’t in the same class as the other three, between those three personal preference would be a strong contender in choosing one – this app technically just isn’t worth it.
See Also some other of my App Reviews: