sshpass 配置與用法介紹
參考文章:http://www.mamicode.com/info-detail-1105345.html
一、介紹
ssh登錄需要與用戶進行交互,需要用戶輸入密碼
sshpass 允許使用-p參數指定明文密碼
二、sshpass 用法:
1.指定密碼
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
2.從文件中讀取密碼
echo ‘password‘ >mypasswd
sshpass -f mypasswd ssh user@ip
Notes:
使用ssh第一次登錄某臺服務器時,會有提示“Are you sure you want to continue connecting (yes/no)”,這時用sshpass會不好使
解決辦法:可以在ssh命令後面加上 -o StrictHostKeyChecking=no來解決
sshpass -p password ssh -o StrictHostKeyChecking=no user@ip
除此之外還可以修改ssh的配置文件,在所有機器上修改/etc/ssh/ssh_config (mac中為/etc/ssh_config)文件中設置StrictHostKeyChecking no即可(默認為 #StrictHostKeyChecking ask )
3.從環境變量中獲取ssh密碼
export SSHPASS= "password "
sshpass -e ssh user@ip
案例:
定期修改服務器(百臺左右)密碼之後,驗證是否修改成功
#cat server_list.cfg
web1
web2
web3
#cat check_passwd.sh
#!/bin/bash
ips=`cat server_list.cfg`
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
sshpass 配置與用法介紹