如何用SSH連接遠程服務器有兩種方式
1.利用遠程軟件控制:sshclient、Puttty、secureCRT等
2、終端命令 ssh -p 22 root@服務器ip
密碼需要手工交互式輸入(22: 端口號 root: 用戶名)
ssh登陸不能在命令行中指定密碼。sshpass的出現,解決了這一問題。sshpass用於非交互SSH的密碼驗證,可以 -p 參數指定明文密碼,然后直接登錄遠程服務器,支持密碼從命令行、文件、環境變量中讀取。
其默認沒有安裝,需要手動安裝,方法如下:
sshpass下載地址:http://sourceforge.net/projects/sshpass/ 下載為一個 tar.gz的壓縮包。
$ tar -zxvf sshpass-1.05.tar.gz
$ cd sshpass-1.05
$ ./configure --prefix=/opt/sshpass #指定安裝目錄
$ make
$ make install
$ cp /opt/sshpass/bin/sshpass /usr/bin/
輸入命令 sshpass 如下提示即安裝成功:
2.用法介紹
# 免密碼登錄 $ sshpass -p password ssh username@host
sshpass -p A123456 ssh root@192.168.56.102
#從文件獲取密碼
$
sshpass -f userpasswd
.txt ssh root@192.168.56.102
#從環境變量獲取密碼 $> export SSHPASS="password" $> sshpass -e ssh username@x.x.x.x
# 遠程執行命令 $ sshpass -p password ssh username@host <cmd>
# 通過scp上傳文件 $ sshpass -p password scp local_file root@host:remote_file # 通過scp下載文件 $ sshpass -p password scp root@host:remote_file local_file
# 循環執行多台機器的命令
for
i
in
$(
cat
/root/1
.txt)
do
echo
$i
sshpass -p123456
ssh
root@$i
'ls -l'
done
忽略RSA Key檢查信息
第一次認證一般會有RSA key
檢查的提示:
The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established. RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60. Are you sure you want to continue connecting (yes/no)?
可以使用-o StrictHostKeychecking=no
選項來忽略key檢查信息。sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null