pconsole 及 clusterssh 同時控制多個 ssh 連線的指令

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

pconsole 及 clusterssh 同時控制多個 ssh 連線的指令

文章louie » 週二 9月 21, 2004 3:28 am

pconsole 及 clusterssh 都是用來同時控制多台電腦的指令(ssh),當然用在 cluster 下是最好的,但不是 cluster 環境下也可以用。


pconsole: Version: 1.0-4

首先要設成 setuid 才能由一般 user 來跑。
必須在一開始就連到想要控制的電腦,無法在半途加入新的,但可以下指令將某一台電腦暫時離線或連接。內定是用 xterm 來開啟所有視窗,若不作修改,視窗及字型太小很難看,可設環境變數來達到功能。
代碼: 選擇全部
   P_TERM=rxvt
   P_TERM_OPTIONS="-geometry 100x40 -fn 12x24 -bg black -fg white -tn xterm"
   P_CONSOLE_OPTIONS="-geometry 160x62"

內附一個 pconsole.sh 來給 user 使用,會呼叫 pconsole,指令如下:
代碼: 選擇全部
   pconsole.sh user1@192.168.1.1:22 user2@192.168.1.2:3333

可指定 ssh port,但 pconsole.sh 有點問題,必須修改一行才能讓 port 生效。
約在 116 行:
代碼: 選擇全部
   ${P_TERM} ${P_TERM_OPTIONS} -title "pconsole: ${HOST}" -name "pconsole: ${HOST}" -e ${P_CONNECT_CMD} ${HOSTNAME} ${PORT} &

加上 -p (因為 openssh 指令為 ssh -p port hostname)
代碼: 選擇全部
   ${P_TERM} ${P_TERM_OPTIONS} -title "pconsole: ${HOST}" -name "pconsole: ${HOST}" -e ${P_CONNECT_CMD} ${HOSTNAME} -p ${PORT} &


pconsole.sh 得配合 ssh.sh 來運作,也是內附的。一樣可由環境變數來找到。
代碼: 選擇全部
   P_CONNECT_CMD="/usr/local/bin/ssh.sh"


由於在登到 server 問密碼時,若直接鍵入密碼,則會在主控台上顯示密碼,若有別人在場,則會洩漏出去。因此可在主控台上按 Ctrl-A 進入命令模式,下 echo off 讓鍵入的按鍵不會出現在主控台上,打 connect 回到傳送模式再打密碼,打完密碼後再按 Ctrl-A 進入命令模式,執行 echo on,再打 connect 回到傳送模式即可。



clusterssh: Version: 2.16-1

一般 user 即可使用,但無法設定 ssh port,但可由修改 /usr/bin/cssh 來達到功能,但若是不同機器開不同的 port 則不行。平常是配合 ssh 來用,但是也可當作 rsh 來用(crsh)。

修改 /usr/bin/cssh 約在 465 行:
代碼: 選擇全部
     my $port=3333;

一樣是採用 xterm 來使用,可在家目錄加個 .csshrc 來換成其他的 TERM。
代碼: 選擇全部
   terminal = /usr/local/bin/start-crxvt
   clusters = list1 list2
         list1 = 192.168.1.1 192.168.1.2
         list2 = server4 user@server5

/usr/local/bin/start-crxvt 內容為
代碼: 選擇全部
   crxvt -fn 12x24 -fm taipei24 -bg black -fg white -tn xterm -sl 2048 -geometry 104x39 -tn xterm $@ &

指令為
代碼: 選擇全部
   cssh user1@192.168.1.1 user2@192.168.1.2


代碼: 選擇全部
   cssh list1

在 ~/.csshrc 中 list1 為 192.168.1.1 及 192.168.1.2 二台電腦
或是
代碼: 選擇全部
   cssh

進入 GUI 再加入電腦,也可隨時將某台電腦離線或斷線。


在二個都試過後,覺得目前 clusterssh 比較好用一些,但致命傷是無法對不同電腦使用不同的 port,但可隨時加入電腦,及一般 user 即可用,由於 clusterssh 是用 perl 來寫的,看不大懂,不會改,所以看看未來新版的能不能將這個功能加進來。

另外如果只想針對某一台電腦做動作,只要滑鼠點到那台電腦的視窗即可,不要從主控台下指令。

由於在登入時,不同電腦可能會有不同的密碼,可能會有點麻煩,因此建議使用 ssh-agent 配合 public key 來使用。

--
路易 September 21, 2004 00:22:04
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron