sshpass用法介紹


參考文章:http://www.mamicode.com/info-detail-1105345.html

1.ssh與sshpass的區別

  • ssh登錄需要與用戶進行交互,需要用戶輸入密碼
  • sshpass 允許使用-p參數指定明文密碼

2.sshpass的用法

使用-p參數指定密碼
  • sshpass -p password ssh -p port user@ip  登錄
  • sshpass -p password ssh -p port user@ip  " cmd "  執行命令
  • sshpass -p password scp user@ip:remote_file local  scp命令

使用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 -f mypasswd ssh 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" ssh root@$ip ":" 

        [ $? -eq 0 ] && echo -e  "\033[32m ==$ip==password is ok... \033[0m" || echo -e "\033[31m ==$ip==Password is error!!! \033[0m"

done

1.server_list.txt是存放server IP的list

2.驗證是否能登陸時,使用命令ssh root@$ip ":" ,其中":"代表要在登陸到的服務器中執行的命令,如果沒有這個命令,使用該命令就直接登錄到遠程機器中,而不會執行后續步驟

3.shell中設置顏的格式為格式: echo -e "\033[字背景顏色;字體顏色m 字符串 \033[0m" 

其中其他屬性與字體顏色同時使用時用時,格式為 echo -e "\033[5m \033[字背景顏色;字體顏色m 字符串 \033[0m" ,其中兩者順序可以調換

 

字背景顏色范圍:40----49 字顏色:30-----------39   其他屬性
40:黑 
41:深紅 
42:綠 
43:黃色 
44:藍色 
45:紫色 
46:深綠 
47:白色 
30:黑 
31:紅 
32:綠 
33:黃 
34:藍色 
35:紫色 
36:深綠 
37:白色

\33[0m 關閉所有屬性 
\33[1m 設置高亮度 
\33[4m 下划線 
\33[5m 閃爍 
\33[7m 反顯 
\33[8m 消隱

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM