在平時管理服務器的時候難免要進行一些頻繁的登陸操作,在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和密碼 第二次就不用了 以後會修好