shell SSH遠程無密碼登錄和操作
SSH遠程一臺設(shè)備
SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議,用戶可以通過SSH協(xié)議遠程訪問同一個網(wǎng)段的其他設(shè)備,此時只需要將設(shè)備和路由器連接就行了,而不用將設(shè)備和PC連接在一起,而后用戶就可以通過PC輕松訪問該設(shè)備了。
SSH的指令模式如下:
主要參數(shù)說明:
-l 指定登入用戶
-p 設(shè)置端口號
-f 后臺運行,并推薦加上 -n 參數(shù)
-n 將標準輸入重定向到 /dev/null,防止讀取標準輸入
-N 不執(zhí)行遠程命令,只做端口轉(zhuǎn)發(fā)
-q 安靜模式,忽略一切對話和錯誤提示
-T 禁用偽終端配置
SSH執(zhí)行遠程登錄的命令格式:
Ssh [options][remote host][command]
假設(shè)遠程設(shè)備的IP是109.105.116.100
則命令行可以為:
ssh root@109.105.116.100
SSH遠程登錄并執(zhí)行指令格式:
Ssh [options][remote host][command]
注意:此時的command是需要雙引號“”括起來的。
比如:ssh root@109.105.116.86 "ls"
如果有連續(xù)指令需要執(zhí)行的話,則需要用分號“;”將不同的語句隔開,比如:
#ssh root@192.168.0.107 "cd /home/testbed/DUT; ls"
SSH遠程多臺設(shè)備
當有多臺設(shè)備需要用SSH遠程的時候,如果再一臺臺的手動鏈接會比較麻煩,此時就可以通過一個腳本來實現(xiàn)SSH遠程無密碼登錄。
生成秘鑰
SSH無密碼登錄首先需要生成一個公鑰。
ssh-keygen -t rsa -P ''
其中-P為設(shè)置password, ''表示密碼為空,這時候系統(tǒng)會自動生成秘鑰。也可以這樣
ssh-keygen -t rsa
此時需要四次回車來完成密碼設(shè)置過程。
這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下,名稱為id_rsa.pub。
秘鑰拷貝
當秘鑰生成了之后,就需要通過SSH將秘鑰拷貝到遠程設(shè)備上。拷貝命令為ssh-copyid。
ssh-copy-id –I root@192.168.0.107
之后就可以通過shell腳本的for循環(huán)來遠程操作每個設(shè)備,然后執(zhí)行設(shè)備里的文件了。
ip_array=(1 2 3 4 5 6 7 8 9)
for IP in ${ip_array[@]}
do
echo "the ip is $IP"
ssh? ${IP_PATH}${IP} "cd /home/testbed/DUT/Project_Shell;
chmod 777 *;
./dut_start.sh;
sleep 1;
exit"
done