我想创建一个bash脚本与SSH_ASKPASS和DISPLAY变量执行无密码的ssh命令。 在我的bash脚本,我加括号前和命令后启动它在一个新的子shell。 该脚本获取一个新的shell启动(获取一个新的PID),但TTY仍然连接。 从我的理解,对SSH_ASKPASS工作,TTY不应连接。 请让我知道如果任何人有一个解决方案。 我想,只有外壳/ 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只包含密码
当我执行该脚本,它要求输入密码。
谢谢进阶
从灵感“强制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
我一直在寻找这个问题,以及;))这似乎是解决方案
击(工程100%)
http://andre.frimberger.de/index.php/linux/reading-ssh-password-from-stdin-the-openssh-5-6p1-compatible-way/
或者用期待
http://bash.cyberciti.biz/security/expect-ssh-login-script/
PS:我知道这是一个迟到的回答,但很可能会帮助别人:)