sshpass 使用
sshpass 可进行非交互的ssh密码验证,允许使用-p参数指定明文密码。对比ssh需要用户进行交互,sshpass可用于脚本中进行自动登录。
# 示例
# -p 直接指定密码
sshpass -p password ssh -p 22 port user@ip
登录并执行命令
sshpass -p password ssh -p port user@ip " cmd "
警告
使用ssh第一次登录某台服务器时,会有提示 (yes/no) 的确认,这时用sshpass会不好使
解决办法:可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决, 如下:
- 可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决, 如下:
sshpass -p password ssh -o StrictHostKeyChecking=no user@ip
- 修改ssh的配置文件,修改需要登录机器的
/etc/ssh/ssh_config
,设置StrictHostKeyChecking no
# -f 文件中读取密码
模拟密码写入文件pwd.txt
echo '123456' > pwd.txt
指定文件登录
sshpass -f pwd.txt ssh user@ip
# -e 环境变量中获取密码
设置密码到环境变量
export SSHPASS= "123456"
使用环境变量密码登录
sshpass -e ssh user@ip
上次更新: 2024/11/05, 08:29:31