在 bash(和其他 shell)中,可以使用 $() 和 ``(反引号)之类的东西将命令的结果插入命令行。
现在,如果您有类似的东西,但对于 ssh 会话,那就太好了。因此,您处于 ssh 会话中,需要来自您自己计算机的一些信息,并希望将其放入您所连接计算机的内部命令行中。
例如说你想直接访问一个 mysql 控制台。你可以使用这样的命令:
ssh [email protected] "mysql -u blub -pmypass"
这行得通,但问题是,您可以在 ssh shell 进程的命令行中看到密码。
为了解决这个安全问题,我想要这样的东西:
ssh [email protected] "mysql -u blub -p\$(ssh-on-client 'cat pass-file')"
这将cat passfile
在 ssh 客户端而不是服务器上执行。有没有这样的已知情况?你还有其他技巧可以做到这一点吗?
更新:我很欣赏引用我的例子的答案,但除非他们回答真正的问题,否则我不会接受它们。也就是说,是否可以从 ssh 会话中与 ssh 客户端计算机进行通信。(我知道这可能构成安全问题)
可能的解决方案: