一尘不染

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

linux

我正在编写一个将执行suor sudo或or 的C Shell程序ssh。他们都希望在控制台输入(TTY)而不是stdin或命令行中输入密码。

有人知道解决方案吗?

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

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


阅读 283

收藏
2020-06-02

共1个答案

一尘不染

对于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,我已经做了很多尝试来自动化/脚本化它的用法,但是都没有成功。在没有提示的情况下,似乎没有任何内置方法可以将密码传递到命令中。正如其他人提到的那样,“
期望
”实用程序似乎旨在解决这一难题,但最终,设置正确的私钥授权是尝试使其自动化的正确方法。

2020-06-02