sshpass 命令
前言
写 shell 脚本的时候经常需要通过 ssh 命令登录到其它机器执行命令,但是 ssh 要求交互式的输入密码,虽然可以结合 expect 使用达到目的,但是总归不方便,今天了解到可以通过 sshpass 这个命令实现非交互式指定密码登录,类似于 mysql -u root -p '123456'
, 通过 -p
选项指定密码。简单记录下用法
安装
ubuntu:
sudo apt install sshpass
使用样例
首次使用 sshpass 命令前需要检查 /etc/ssh/ssh_config, 将 #StrictHostKeyChecking ask
修改为StrictHostKeyChecking no
, 然后 systemctl restart sshd
重启ssh服务
- 常用方式一: 免密登录远程主机
# 其中-p选项后面指定密码
sshpass -p '123456' ssh root@192.168.16.19
# 从文件的读取密码进行远程登陆
sshpass -f ~/passwd.txt ssh root@192.168.16.20
- 常用方式二:免密传送文件
sshpass -p '123456' scp ~/Movie/bmw.ts root@192.168.16.21:/tmp