企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
> sshpass命令提供了一个免输入密码的非交互方式来执行ssh操作 **安装:** ~~~ yum -y install sshpass ~~~ **命令格式:** > 命令:sshpass \[-f filename | -d num | -p password |-e\] \[options\] command arguments > option: > > * \-p password:密码在命令行中给出 > * \-d number:由文件描述符给出密码 > * \-f filename:读取文件首行给出密码 > * \-e:由环境变量SSHPASS给出密码 | 命令 | 解释 | | --- | --- | | sshpass -p 123456 ssh -p 33[root@192.168.1.1](mailto:root@192.168.1.1)\-o "StrictHostKeyChecking no" | 在命令行携带密码远程登录主机 | | sshpass -f ~/passwd.txt ssh -p 33[root@192.168.1.1](mailto:root@192.168.1.1)\-o "StrictHostKeyChecking no" | 从文件中读取密码,并登录远程主机 | | export SSHPASS='123456' sshpass -e ssh -p 33[root@192.168.1.1](mailto:root@192.168.1.1) | 设置环境变量的方式登录远程主机 | | sshpass  -d 51671 ssh [root@192.168.1.1](mailto:root@192.168.1.1)"cat /etc/centos-release" | 由文件描述符给出密码,登录远程主机并执行指定命令 | > 对于ssh的第一次登陆,会提示:“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会执行失败,可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决 **使用rsync和sshpass进行传输文件:** ~~~ // 从远程服务器192.168.1.1 传输文件/文件夹到本地服务器 // rsync命令 -r 参数未递归处理指定目录 [root@izwz91quxhnlkan8kjak5hz ~]# rsync --rsh="sshpass -p '123456' ssh -p 33 -l root" 192.168.1.1:/backup/ ~/backup/ skipping directory . [root@izwz91quxhnlkan8kjak5hz ~]# rsync -r --rsh="sshpass -p '123456' ssh -p 33 -l root" 192.168.1.1:/backup/ ~/backup/ [root@izwz91quxhnlkan8kjak5hz ~]# ls backup ~~~ **使用scp和sshpass进行传输文件:** ~~~ // 在命令行指定远程主机密码和端口,发送文件到远程服务器 [root@localhost ~]# sshpass -p '123456' scp -r -P 33 /backup/ root@192.168.1.1:~/backup/ ~~~