内容
#!/bin/sh
echo "hello"
PASS_WORD=pw123456
USERNAME=root
IP=192.168.0.1
echo "----SSH----"
sshpass -p $PASS_WORD ssh -o StrictHostKeyChecking=no $USERNAME@$IP -tt "sh /home/sh1.sh"
参数解释
sshpass
sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证)
安装:
- yum install sshpass
本地调用远程主机执行命令:
- sshpass -p xxx ssh root@192.168.0.1 "echo hello"
从密码文件读取文件内容作为密码操作:
- sshpass -f xxx.txt ssh root@192.168.0.1
-tt
强制伪终端分配,否则因为标准输入不是终端可能出现报错:
Pseudo-terminal will not be allocated because stdin is not a terminal.
-o StrictHostKeyChecking=no
连接新主机时,不进行公钥确认。如果不加这个参数,初次连接远程主机时会显示该主机的公钥摘要,并需要输入“yes”来是信任该主机,shell操作十分不方便:
The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established. RSA key fingerprint is a3:ca:ad:95:a1:45:d2:57:3a:e9:e7:75:a8:4c:1f:9f. Are you sure you want to continue connecting (yes/no)?