其他命令 · 2022年02月20日 0

sshpass命令 – 用于非交互的ssh 密码验证

sshpass命令用于非交互的 ssh 密码验证。可以在命令行直接使用密码来进行远程连接和远程拉取文件。使用前提:对于未连接过的主机。而又不输入yes进行确认,需要进行sshd服务的优化。 **语法格式:** sshpass [参数] **常用参数:** | -p | 指定密码 | | ---- | ---------- | | -f | 指定文件 | **参考实例** 安装sshpass: ``` [root@anycode ~]# yum install -y epel-release [root@anycode ~]# yum install -y sshpass [root@anycode ~]# sshpass -V ``` 基本使用方法: ``` [root@anycode ~]# sshpass -p "password" ssh username@ip ``` 当远程主机端口不再是22默认端口时候: ``` [root@anycode ~]# sshpass -p "password" ssh -p 8443 username@ip ``` 直接远程连接某台主机: ``` [root@anycode ~]# sshpass -p xxx ssh root@192.168.11.11 ``` 本地执行远程机器的命令: ``` [root@anycode ~]# sshpass -p xxx ssh root@192.168.11.11 "ethtool eth0" ``` 远程连接指定ssh的端口: ``` [root@anycode ~]# sshpass -p 123456 ssh -p 1000 root@192.168.11.11 ``` 从密码文件读取文件内容作为密码去远程连接主机: ``` [root@anycode ~]# sshpass -f xxx.txt ssh root@192.168.11.11 ``` 从远程主机上拉取文件到本地: ``` [root@anycode ~]# sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/ ```