# Sshpass 是什么

**URL:** <https://www.isharkfly.com/t/sshpass/15645>\
**Category:** DevOps\
**Created:** [April 16, 2024, 4:50pm UTC](https://www.isharkfly.com/t/sshpass/15645 "2024-04-16T16:50:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![hex](https://www.isharkfly.com/user_avatar/www.isharkfly.com/hex/32/21953_2.png) [@hex](https://www.isharkfly.com/u/hex)\
**Post date:** [April 16, 2024, 4:50pm UTC](https://www.isharkfly.com/t/sshpass/15645/1 "2024-04-16T16:50:14Z")

</div>

在大多数情况下，Linux 系统管理员使用 SSH 登录到程 Linux 服务器时，要么是通过密码，要么是无密码 SSH 登录或基于密钥的 SSH 身份验证。

如果你想自动在 SSH 登录提示符中提供 **密码** 和 **用户名** 怎么办？这时 **sshpass** 就可以帮到你了。

sshpass 是一个简单、轻量级的命令行工具，通过它我们能够向命令提示符本身提供密码（非交互式密码验证），这样就可以通过 cron 调度器执行自动化的 shell 脚本进行备份。

ssh 直接使用 TTY 访问，以确保密码是用户键盘输入的。 sshpass 在专门的 tty 中运行 ssh，以误导 ssh 相信它是从用户接收到的密码。

sshpass 是一个简单、轻量级的命令行工具，通过它我们能够向命令提示符本身提供密码（非交互式密码验证），这样就可以通过 cron 调度器执行自动化的 shell 脚本进行备份。

参数：

-f filename：从文件中获取密码  
-d number：使用数字作为获取密码的文件描述符  
-p password：指定明文本密码输入（安全性较差）  
-e 从环境变量SSHPASS获取密码
