tag: ssh script bash linux expect sssh
此腳本對(duì)于那些需要經(jīng)常 ssh 登陸遠(yuǎn)程服務(wù)器的朋友應(yīng)該有點(diǎn)用處。尤其是需要中轉(zhuǎn)服務(wù)器 ssh 2 次以上的。腳本功能包括:將服務(wù)器
IP 和密碼保存于文本文件中 (明文保存,安全性要自己保證),方便登陸,支持多次 ssh
中轉(zhuǎn),支持服務(wù)器編碼自動(dòng)轉(zhuǎn)換,支持某個(gè)用戶名的通用密碼。
版本說明: v2.0版本中 ssh可以指定連接端口,改善bash環(huán)境支持
使用方法:
最好將腳本保存在 PATH 變量包含的路徑下,建議保存于 ~/bin 并確保此目錄在 PATH 中。
編寫 ~/.pass 文件,并執(zhí)行 chmod 600 ~/.pass
安裝 expect 包。
.pass 文件的寫法:
- 最簡單的,可以在文件中寫下如下一行:
name=hostA usernameA@IP-A passwordA
就可以使用 sssh hostA 登陸此服務(wù)器了。
- 中轉(zhuǎn)登陸:
name=hostA usernameA@IP-A passwordA
name-hostA=hostB usernameB@IP-B passwordB
執(zhí)行 sssh hostA hostB 就相對(duì)于先登陸 hostA,然后在 hostA 上登陸 hostB。同理,理論上可以中轉(zhuǎn) N 次,hostA->hostB->hostC->hostD……,嘿嘿……
- 使用通用用戶名的密碼:
這是用于這樣的例子:有 N 個(gè)服務(wù)器,都開通了一個(gè)通用用戶名 (例如:view 用戶,只有很低的權(quán)限),這些 view
用戶的密碼都是同一個(gè),而且會(huì)定期同步修改。這種情況下,如果修改了 view 密碼的話,.pass 文件就要修改 N
個(gè)密碼了,為了避免這樣的麻煩,可以使用通用用戶名和密碼功能:
usualName view
usualPSW password-of-view
name=hostA view@IP-A
name=hostB view@IP-B
name=hostC view@IP-C
這樣就可以直接用 sssh hostA,sssh hostB 登陸了。可以看到,這里省略了第 3 列的密碼字段。此法同樣適用于多級(jí)登陸的服務(wù)器。
- 指定服務(wù)器使用的編碼:
usualName view
usualPSW password-of-view
name=hostA usernameA@IP-A passwordA gbk
name=hostB view@IP-B | gbk
在某行服務(wù)器的后面 (第 4 列),加上 gbk,就可以指明該服務(wù)器使用的是 gbk,登陸了以后不會(huì)出現(xiàn)亂碼了。如果某行使用了通用用戶名和密碼的話,為了不致引起混亂,密碼那列需要加個(gè) | (豎線) 占位。
- 使用通用編碼:
usualCODING gbk
加上此行,對(duì)于沒有指定編碼的服務(wù)器,將默認(rèn)使用 gbk 編碼。
- 手工指定遠(yuǎn)程連接端口:
name=hostA usernameA@IP-A:port passwordA
name=hostD view@IP-D:port
7.
改善bash環(huán)境支持(~/.bash_profile文件)
用到第三方 term時(shí), bookmark command運(yùn)行sssh時(shí)一些環(huán)境支持
例如: .bash_profile文件加入環(huán)境上下文.
cat ~/.bash_profile
alias ls="ls -Gw"
source ~/.profile
注:要區(qū)分 bash,tcsh
下載v2.0:
由于腳本貼在這里會(huì)出現(xiàn)半角引號(hào)變?nèi)堑臓顩r。所以,請(qǐng)直接在 [這里下載]
原1.0版本請(qǐng)?jiān)L問 [這里]
posted on 2008-12-19 12:49
地獄男爵(hellboys) 閱讀(1459)
評(píng)論(1) 編輯 收藏