Welcome to the new SysAdmin Series, where we will cover apps and other tips and tricks for using your Android device to help you get the job done and stay on top of things in the realm of system administration.

Probably the foremost tool for any sysadmin is a good SSH client. My favorite so far is ConnectBot, by Kenny Root and Jeffrey Sharkey. At the time of this writing, this free, lean, simple SSH client is at version 1.6.2, weighs in at 352KB and has had more than 250,000 downloads and enjoys a 5-star rating from over 10,000 users, and describes itself as such in the Android Market:

ConnectBot is a powerful open-soure Secure Shell (SSH) client. It can manage simultaneous SSH sessions, create secure tunnels, and copy/paste between other applications. This client allows you to connect to Secure Shell servers that typically run on UNIX-based servers.

Using ConnectBot

When we launch the app, we see a list of hosts that we have pre-configured:

connectbot - 1 - host list

I select a host to connect to, and it prompts me for my credentials:

connectbot - 2 - asking for a password

At this point, I'm sitting at a prompt and can use the app however I need to do my job (left image below). If I need more screen real estate, I can tap my device's "back" button to remove the keyboard (center image below). If I need the keyboard back again, I can tap anywhere on the screen to reveal a keyboard icon (right image below).

Thankfully, the Nexus One has an amazing AMOLED screen so the small font isn't too hard to read. I imagine the larger screened devices such as the Sprint EVO 4G will be even better.

connectbot - 6 - ls-l

Finally, when disconnecting, we are prompted for confirmation. If we stay connected and return to the home screen of hosts, we see a green icon next to any hosts we're currently connected to.

connectbot - 7 - disconnect

Tunelling

I didn't have opportunity to test the secure tunneling. If any readers have experience with this, please feel free to leave a comment below.

Settings

The settings menu of the home screen of the app will allow you to manage your public keys, configure a custom color scheme, and browse a wide variety of other settings.

Remember keys in memory

This checkbox will allow you to keep unlocked keys in memory until backend service is terminated.

This will let ConnectBot check for new versions of itself; somewhat redundant. Settings are 'daily', 'weekly' and 'never'.

Persist connections

This checkbox will allow connections to stay connected while the app is running in the background.

Terminal Emulation

Emulation Mode

There are several terminal emulation modes such as xterm-color, vt100, ansi and screen.

Scrollback Size

The default of 500 lines should be enough; increasing this will use more RAM on your device.

User Interface

Rotation Mode

This setting will let you force ConnectBot to rotate the display if you so choose. The default setting will rotate the screen as you tilt your device, but you can 'fix' the display in landscape, portrait or automatic mode.

Full Screen

If you select this checkbox (default: off), you can hide the status bar on the screen to give you extra screen real estate.

Directory Shortcuts

This will select how to use Alt for '/' and Shift for Tab.

Camera Shortcut

This will let you set a keyboard shortcut to activate a camera. This seems like a pretty strange thing to include in an SSH client. Since I use the Swype keyboard, I could not change to the native Android keyboard for testing this feature.

Keep Screen Awake

This disables your phone from setting your screen to sleep.

Keep Wi-Fi Active

This prevents your device's wifi from turning off while you're actively connected to a host.

Bumpy Arrows

This will vibrate your device when sending arrow key scrolling when using a trackball.

Terminal Bell

Audible Bell

Checkbox setting, default is on.

Bell volume

Volume setting for audible bell.

Vibrate on Bell

Default is on.

Background Notifications

Checkbox, default is on. This sends a notification on your device's Notification bar when an active terminal sends a Bell event.

Conclusions

I personally use ConnectBot quite often when I'm not at a system and need to do some very quick work. The size of the screen and limited keyboard don't make the app very practical for long-term use, especially when you can use tethering apps (covered in another SysAdmin article later) or using the native tethering within Froyo (Android 2.2). This is not a shortcoming of ConnectBot, this would affect any SSH client on an Android device with a smaller screen.

The only problem I really found in ConnectBot was that an active session doesn't treat the screen as a native input field -- a long-tap on the screen in a typical input field would allow you to change your Input Method, where I might want to change to a different keyboard layout (ie: Swype or native Android keyboard). This is pretty minor, however.

With the number of downloads, it's very clear that there is a demand for a good terminal app on the Android platform, and ConnectBot seems to be the clear leader.