1. 程式人生 > >sshpass 配置與用法介紹

sshpass 配置與用法介紹

conf code 參考 pass 讀取 執行 note connect ask

參考文章: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 配置與用法介紹