我正在尝试创build一个bash脚本,用SSH_ASKPASS和DISPLAYvariables执行无密码的ssh命令。 在我的bash脚本中,我已经在命令之前和之后添加了括号,以在新的子shell中启动它。 脚本在一个新的shell中获取(获取一个新的PID),但TTY仍然附加。 根据我的理解,为了使SSH_ASKPASS正常工作,不应该附加TTY。 请让我知道如果有人有这个解决scheme。 我只想用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只包含密码
当我执行脚本时,它要求input密码。
感谢Adv。
从'强制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
我一直在寻找这个;))这似乎是解决方案
Bash(Works 100%)
或者使用期望
http://bash.cyberciti.biz/security/expect-ssh-login-script/
PS:我知道这是一个迟到的答案,但可能会帮助别人:)