如何启动Linux子shell为SSH_ASKPASS在Linux下工作(how to launch

2019-07-30 23:37发布

我想创建一个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只包含密码

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

谢谢进阶

Answer 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


Answer 2:

我一直在寻找这个问题,以及;))这似乎是解决方案

击(工程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:我知道这是一个迟到的回答,但很可能会帮助别人:)



文章来源: how to launch linux subshell for SSH_ASKPASS to work in linux
标签: linux ssh