在平时管理服务器的时候难免要进行一些频繁的登陆操作,在windows下有一些很好的管理工具。但linux下寥寥无几。我的需求很简单,首先是基于命令行的,能分组,能保存密码就好,但我寻找了很长时间都没有一个能够使我满意的,于是乎,自己动手丰衣足食,也正好练习一下python。
首先说下运行环境:
os: ubuntu 12.04
python: 2.7+sqlite
ssh客户端: zssh (因为能用sz和rz进行文件传输)
脚本地址:
https://git.oschina.net/lunule/ssh-tool
大概原理:
通过命令行参数保存数据到数据库,登陆的时候通过主机名参数在数据库中找到对应的ip地址,端口,key文件,密码等组装成一条shell命令进行登陆
基本使用:
先来个图
字段说明:
name: 主机别名
group: 所属组
desc**: 主机描述信息(懒得写,所以是空的)
user: 登陆用的用户名
port: 端口
key: key文件
下面介绍下命令行参数:
子参数说明:
ssh *** --help
ls: 列表
ssh ls -a #列出所有主机 结果如上图 ssh ls #列出所有组 图略 ssh ls -g 组名 #列出指定组内的主机 ssh ls -k #列出所有key
gadd: 添加组
ssh gadd 组名
add: 添加主机
ssh add 别名 ip -u 用户名 -p 密码 -P 端口 -g 组名 -k key文件 -m 描述 #带'-'的都是可选的
kadd: 添加key文件
ssh kadd 别名 位置
del: 删除主机,主机组或key文件
ssh del --name 主机名 ssh del --group 组名 #组内必须没有主机 ssh del --key key名
smod: 修改主机信息
ssh smod 主机名 --host 新ip -u 新用户名 -p 新密码 -P 新端口 -g 新组 -m 新描述 -k 新key #带'-'或'--'的为可选
gmod: 修改组信息
ssh gmod 组名 -g 新组名 -m 新描述 #带'-'的为可选
lg: 登陆
ssh lg 主机名 ssh lg 主机名 --show #显示shell命令 不登陆
info: 显示主机信息
ssh info 主机名 #执行结果如下
以上就是这个小工具的使用说明,脚本很简单,参数设定有点乱~ 但基本能满足我的使用
其他功能:
1.如果装了xclip的话 在登陆的时候能把密码保存到系统粘贴板,在用非root登陆的时候很方便 在su - root的时候就不用查密码了 直接快捷键粘贴就好了 但是在添加的时候 -p参数必须指定为root密码
已知bug:
1.第一次登陆的时候会有问题 会让你输入yes和密码 第二次就不用了 以后会修好