The origin of this application can be traced to an outing. The author needed to temporarily connect to the company server to check the service startup status, but had only an Android phone at hand, and therefore had no choice but to try several mainstream mobile SSH clients. The results were exasperating: they were almost all replicas of PC terminal SSH connection tools—a command-line window with virtual keyboard buttons densely arranged below. Given the inherently small screen of a mobile phone, accommodating both a keyboard and a result output box made the window appear extremely crowded. More critically, entering commands was not as convenient as with a computer keyboard. I spent a long time entering a single command to check a port, and when it was executed, an error occurred. Only after careful checking did I realize that, owing to my nearsightedness, I had mistyped a letter without noticing it. This was exasperating. In addition, in several applications, button labels were incompletely displayed or misaligned, and it took scrolling through several screens to tap the required button. Having had this poor experience, I decided to try making one myself to see whether SSH use on mobile phones could be made more convenient.
After such an experience, the first development priority was to resolve the problem of interface complexity: rather than copying the computer terminal interface, the interaction design was redone for mobile scenarios. The core idea is to abstract SSH connections and frequently used commands into two types of manageable resources—pre-entered host information (address, port, account, password, or private key) and a set of frequently used commands. When used while away, users only need to select a connection, tap the command to be executed, and view the result; in particular, this avoids the need to repeatedly type those frequently used commands on the keyboard. Of course, temporary commands must also be executable, and after entry and execution they should be able to be readily saved as a new item in the command list for direct invocation next time. This is how SSHHand came into being.
· On the subway, after receiving a server alert, take out the phone, open SSHHand, switch the connection to Production Web-01, tap a preset Check Disk Usage, and view the result within seconds. · During ad hoc troubleshooting, execute a command that has not been preset and readily save it as a new entry for direct invocation next time. · When switching phones, export all configurations into an encrypted file and restore them on the new phone, without losing a single connection or command.
SSHHand does not seek to be the most feature-complete SSH client; it does only one thing: make temporarily connecting to a host sufficiently simple.