在 bash 中,如何使用此处文档,然后打开标准输入?

在 bash 中,如何使用此处文档,然后打开标准输入?

我的示例是,我正在通过服务器建立隧道,并希望创建一个命令来输入密码,但完成后将标准输入保持打开状态。例如,每次登录此远程主机时,我都需要对不同的用户进行 sudo。所以我做了类似的事情:

ssh -p $tunnel_port $me@localhost -t "sudo -S -u $_remoteUser -i" <<< "$( findPassword )"

“findPassword”是一个从密码管理器中获取我的密码的函数

这将关闭连接,在将密码写入 sudo 的标准输入后,如何保持连接打开?

答案1

您有这样的引用,即 ssh 命令的 STDIN 由 findPassword 提供。您希望 sudo 命令的 STDIN 由 findPassword 提供。

ssh -p $tunnel_port $me@localhost -t "echo $(findPassword) | sudo -S -u $_remoteUser -i"

或者

ssh -p $tunnel_port $me@localhost -t "sudo -S -u $_remoteUser -i < $(findPassword)"

相关内容