自己动手编写ssh登陆管理工具

在平时管理服务器的时候难免要进行一些频繁的登陆操作,在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命令进行登陆


基本使用:

先来个图

220324642.png

(ssh是我做的软链接到ssh_cli.py,方便敲键盘j_0064.gif)


字段说明:

name: 主机别名

group: 所属组

desc**: 主机描述信息(懒得写,所以是空的)

user: 登陆用的用户名

port: 端口

key: key文件



下面介绍下命令行参数:

221020413.png

子参数说明:

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 主机名   #执行结果如下

222835181.png

(密码为明文保存j_0059.gif)


以上就是这个小工具的使用说明,脚本很简单,参数设定有点乱~j_0070.gif 但基本能满足我的使用


其他功能:

1.如果装了xclip的话 在登陆的时候能把密码保存到系统粘贴板,在用非root登陆的时候很方便 在su - root的时候就不用查密码了 直接快捷键粘贴就好了 但是在添加的时候 -p参数必须指定为root密码


已知bug:

1.第一次登陆的时候会有问题 会让你输入yes和密码 第二次就不用了 以后会修好


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章