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