【问题标题】:how to launch linux subshell for SSH_ASKPASS to work in linux如何启动 linux subshel​​l 以使 SSH_ASKPASS 在 linux 中工作
【发布时间】:2016-02-12 18:02:54
【问题描述】:

我正在尝试创建一个 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 只包含密码

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

感谢 Adv.

【问题讨论】:

    标签: linux ssh


    【解决方案1】:

    灵感来自'Force ssh to always use 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 2021-02-28
      • 2014-10-01
      • 2015-08-03
      相关资源
      最近更新 更多