从一开使用ubuntu,到后来换到mac,一直使用系统自带的ssh命令,上传文件使用scp命令,由于平时使用并不频繁,也不觉得麻烦。再后来每天用到的机器多了,就不得不每次去公司wiki上查一下机器名,然后粘贴一下,次数多了,就迫切需要一个能像securecrt一样管理主机列表的功能。
首先发掘的用的是mac自带终端

这个用了不到一周,发现撮的不行,总是会新开一个窗口,不能在新标签中打开,只能手工再从菜单里选一个合并所有窗口。再高级点的功能搜索,分组更是木有。。

之后装了一个mac版securecrt,当然对于我来说,securecrt就比mac自带终端多一个好用的列表管理,其他功能基本不用。。,用了一个月到期啦。。。

嘿嘿,对于猿类来说,最终极的解决方案就是自己写一个,于是有了这个简单,易用的ssh列表管理脚本sshgo ( http://github.com/emptyhua/sshgo),是个python写的命令行小脚本,只依赖python>=2.4, 不需要gui,所以不但可以本地使用,也可以很方便的放到跳板机上使用。

软件特性:

  • 单python文件,仅依赖python版本 >= 2.4,适用于mac,linux系统
  • 分组功能
  • 搜索功能(支持python正则表达式)

使用方法:

将主机列表文件放置在~/.ssh_hosts,使用tab或4个空格来创建分组结果,举个例子:

Home
    root@192.168.1.106
Work
    root@comp1 -p 9999
    root@comp2 -p 9999
    root@comp3 -p 9999
VHost
    VMWare
        test@vm1
        test@vm2
        test@vm3
        test@vm4
    VirtualBox:
        test@vbox1
        test@vbox2
        test@vbox3
        test@vbox4
MacOS
    hi@mymac

然后下载管理脚本

wget "https://raw.github.com/emptyhua/sshgo/master/sshgo" -O ./sshgo
#添加执行权限
chmod +x ./sshgo
#GO,就可以看到前面截图所示的效果了
./sshgo

快捷键:

  • 退出: q
  • 向上滚动: k
  • 向下滚动: j
  • 选择主机: space
  • 搜索: /
  • 退出搜索结果: q
  • 展开分组: o
  • 收起分组: c
  • 展开所有分组: O
  • 收起所有分组: C

使用Zmodem?

Zmodem的确是另一个偶尔会用下的功能,可以通过安装zssh实现,在Mac下可以通过macports安装

sudo port install zssh lrzsz

假如安装了zssh,sshgo会优先使用zssh连接主机。连接前zssh会有提示

Press ^@ (C-Space) to enter file transfer mode, then ? for help
#意思是按ctrl + 空格进入文件传输模式(Mac下的这个组合已经被右上角的Spotlight搜索功能占用了,可以在快捷键设置里给他换到其他快捷键组合)

上传文件

按ctrl + 空格进入文件传输模式,之后使用`sz example.txt`上传文件

下载文件

在服务端`sz example.txt`,然后ctrl + 空格,然后`rz` 接收文件