linux - 如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?

标签 linux ssh passwords sudo su

我正在编写一个 C Shell 程序,它将执行 susudossh。他们都希望在控制台输入(TTY)而不是标准输入或命令行中输入密码。

有人知道解决办法吗?

设置无密码 sudo 不是一种选择。

可能是一个选项,但它不存在于我的精简系统中。

最佳答案

对于 sudo,有一个 -S 选项用于接受来自标准输入的密码。这是男人的条目:

    -S          The -S (stdin) option causes sudo to read the password from
                the standard input instead of the terminal device.

这将允许您运行如下命令:

echo myPassword | sudo -S ls /tmp

至于 ssh,我已经做了很多尝试来自动化/脚本化它的使用,但没有成功。似乎没有任何内置方法可以在不提示的情况下将密码传递给命令。正如其他人所提到的,“expect”实用程序似乎旨在解决这一难题,但最终,设置正确的私钥授权是尝试自动执行此操作的正确方法。

关于linux - 如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/233217/

相关文章:

java - 在ubuntu终端中以纯文本形式从url读取java类文件(?)

python - 在 Python 中使用 SFTP 上传文件,但如果路径不存在则创建目录

c# - WebMatrix Helper 控制表在密码更改日期字段中显示错误时间

javascript - 如何使用 greasemonkey 安全地存储密码?

security - 如何存储和验证从 PIN/密码中随机选择的数字

linux - 显示当前目录下的非隐藏文件

通过 shell 脚本的 MySQLDump 没有被执行,为什么?

bash - ssh bash从远程文件接收变量

java - 使用 JSch 的多个命令

c - 如何计算TCP校验和