这个APP要从一次外出说起。作者需要临时连接公司服务器查看一下服务启动情况,手边只有一款安卓手机,于是只好尝试了几款主流的移动端 SSH 客户端,结果令人崩溃:它们几乎都是 PC 终端SSH连接工具的翻版——一个命令行窗口,下面塞满虚拟键盘按钮,手机屏幕本来就小,放下一个键盘和一个结果输出框,窗口显得非常拥挤,更要命的是输入命令的时候不像电脑键盘那么方便,一个查看端口的命令我输入了很长时间,执行的时候报错了,我仔细检查才发现因为近视输错了一个字母没发现,崩溃!还有几个APP按钮标题显示不全、错位,翻了好几屏才能点到需要的按键。有了这个糟糕的体验,我决定试着自己做一个看能不能让手机上使用SSH更加方便。
有过这样的体验后,开发方向首先就是要解决界面复杂的问题:不去照搬电脑终端界面,而是针对移动场景重做交互设计。核心思路是把 SSH 连接和常用命令抽象成两种可管理的资源——事先录入主机信息(地址、端口、账号、密码或私钥)和一串常用命令,出门在外使用的时候只需"选择连接、点击需要执行的命令、查看结果"即可,尤其要避免反复敲键盘去输入那些常用的命令;当然,临时命令同样要可以执行,而且输入执行完毕后要能随手"另存为"进命令列表,下次直接调用。这就是 SSHHand 的由来。
· 地铁上,收到服务器告警信息后,掏出手机打开 SSHHand,把连接切到"生产 Web-01",点一条预置的"查看磁盘占用",几秒后看到结果。 · 临时排查时执行了一条没预置的命令,随手"另存为"存成新条目,下次直接调用。 · 换手机时把全部配置导出成一个加密文件,在新机上恢复,连接和命令一条不丢。
SSHHand 不追求做功能最全的 SSH 客户端,只做一件事:让"临时连一下主机"足够简单。