1

我正在尝试创建一个 bash 脚本来执行带有 SSH_ASKPASS 和 DISPLAY 变量的无密码 ssh 命令。在我的 bash 脚本中,我在命令之前和之后添加了括号,以便在新的子 shell 中启动它。该脚本在一个新的 shell 中启动(获取一个新的 PID),但仍附加 TTY。据我了解,要使 SSH_ASKPASS 正常工作,不应附加 TTY。请让我知道是否有人对此有解决方案。我只想用 shell/bash 脚本来做。

#!/bin/bash
SSH_ASKPASS=/tmp/abc
DISPLAY=localhost:0.0
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 10.10.10.10 -lroot /bin/ls

/tmp/abc 只包含密码

当我执行脚本时,它会要求输入密码。

感谢进阶。

4

1 回答 1

1

灵感来自“强制 ssh 始终使用 SSH_ASKPASS”:您需要分离终端。尝试setsid

#!/bin/bash
SSH_ASKPASS=/tmp/abc
DISPLAY=localhost:0.0
setsid ssh -o StrictHostKeyChecking=no \
           -o UserKnownHostsFile=/dev/null 10.10.10.10 -lroot /bin/ls
于 2016-02-12T10:02:54.157 回答