简单、轻量级命令行工具,提供非交互式密码验证



sshpass

一个简单、轻量级命令行工具,提供非交互式密码验证

原理

  • ssh 直接使用 TTY 访问,以确保密码是用户键盘输入的。 sshpass 在专门的 tty 中运行 ssh,以误导 ssh 相信它是从用户接收到的密码
  • 使用 sshpass 是不安全的,因为所有系统上的用户可以看到密码。因此,在生产环境,建议使用 密钥登录。

安装

sudo apt install sshpass


命令

sshpass [options] ssh user@host


options

​-p password​

直接提供密码

sshpass -p 'my_pass_here' ssh aaronkilik@10.42.0.1 'df -h'


​-e​

读取环境变量 ​​SSHPASS​

在​​bashrc​​ 中添加 ​​SSHPASS​​ 环境变量,配置登录密码

export SSHPASS='PmN8uq48tBGwrMCY'
sshpass -e ssh user@host
# 配置别名使用更香
alias sshtup='sshpass -e ssh root@192.20.0.164 '"'"'sh /root/update.sh'"'"''


​-f filename​

从文件中读取密码

sshpass -f password_filename ssh aaronkilik@10.42.0.1 'df -h'


参考

​https://linux.cn/article-8086-1.html​