自己動手編寫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和密碼 第二次就不用了 以後會修好


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