🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 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 -o "StrictHostKeyChecking no" | 在命令行携带密码远程登录主机 | | sshpass -f ~/passwd.txt ssh -p 33 root@192.168.1.1 -o "StrictHostKeyChecking no" | 从文件中读取密码,并登录远程主机 | | export SSHPASS='123456'<br>sshpass -e ssh -p 33 root@192.168.1.1 |设置环境变量的方式登录远程主机| |sshpass  -d 51671 ssh  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/ ```