linux - 如何为 SSH_ASKPASS 启动 linux 子 shell 以在 linux 中工作

标签 linux ssh

我正在尝试创建一个 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.

最佳答案

灵感来自 '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

关于linux - 如何为 SSH_ASKPASS 启动 linux 子 shell 以在 linux 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945815/

相关文章:

c - 如何判断进程是否是第一次启动

Linux备份脚本 "file changed as we read it"

linux - 重定向 stderr 和 stdout 以分隔 Bash 中的文件?

linux - 脚本:从远程计算机读取文件并存储在 dir 变量中

linux - 在 nagios 命令之前运行 ssh 转发命令

php - 如何在不同计算机上的用户之间共享网站上的实时更新?

ssh - 限制 SSH - 没有命令的 bash

java - linux下如何编译ogre4j

linux - shell合并两个文件

ssh - Phpstorm 9 ssh session 身份验证取消