sshpass用法介绍
參考文章:http://www.mamicode.com/info-detail-1105345.html
https://www.jianshu.com/p/a2aaa02f57dd
p.p1 { margin: 0; font: 17px "Hannotate SC"; -webkit-text-stroke: #000000 }
p.p2 { margin: 0; font: 17px "Hannotate SC"; -webkit-text-stroke: #000000; min-height: 24px }
span.s1 { font-kerning: none }
span.s2 { font-kerning: none; color: rgba(255, 38, 0, 1); -webkit-text-stroke: 0px #ff2600 }
1.ssh與sshpass的區別
ssh登錄需要與用戶進行交互,需要用戶輸入密碼
sshpass 用于非交互的ssh密碼驗證,允許使用-p參數指定明文密碼
2.sshpass的用法
| 使用-p參數指定密碼 |
sshpass -p password ssh -p port user@ip 登錄
|
使用ssh第一次登錄某臺服務器時,會有提示“Are you sure you want to continue connecting (yes/no)”,這時用sshpass會不好使 解決辦法:可以在ssh命令后面加上 -o StrictHostKeyChecking=no來解決 eg:sshpass -p password ssh -o StrictHostKeyChecking=no user@ip 除此之外還可以修改ssh的配置文件,在所有機器上修改/etc/ssh/ssh_config (mac中為/etc/ssh_config)文件中設置StrictHostKeyChecking no即可(默認為 #StrictHostKeyChecking ask ) |
|
使用-f參數從指定文件中讀取密碼 |
echo'password'>mypasswd sshpass-fmypasswdssh user@ip |
|
| 使用-e參數從環境變量中獲取ssh密碼 |
export SSHPASS= "password " sshpass -e ssh user@ip |
案例:
| 功能 | 腳本 | 知識點 | ||||||
| 驗證服務器是夠能夠成功登錄 |
cat check_passwd.sh #!/bin/bash ips=`cat server_list.txt` for ip in $ips do echo ==========$ip=========== sshpass -p "server_password" sshroot@$ip ":" [ $? -eq 0 ] && echo -e "33[32m ==$ip==password is ok... 33[0m" || echo -e "33[31m ==$ip==Password is error!!! 33[0m" done |
1.server_list.txt是存放server IP的list 2.驗證是否能登陸時,使用命令sshroot@$ip ":" ,其中":"代表要在登陸到的服務器中執行的命令,如果沒有這個命令,使用該命令就直接登錄到遠程機器中,而不會執行后續步驟 3.shell中設置顏的格式為格式: echo -e "33[字背景顏色;字體顏色m字符串33[0m" 其中其他屬性與字體顏色同時使用時用時,格式為echo -e "33[5m 33[字背景顏色;字體顏色m字符串33[0m" ,其中兩者順序可以調換
|
總結
以上是生活随笔為你收集整理的sshpass用法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简易的素描图片转换流程与实现
- 下一篇: OpenVINO——配置与道路分割案例