在 bash(和其他 shell)中,可以使用 $() 和 ``(反引号)之类的东西将命令的结果插入到命令行中。
现在,如果您有类似的东西,但对于 ssh 会话,那就太好了。因此,您处于 ssh 会话中,需要来自您自己计算机的一些信息,并希望将其放入您所连接计算机的内部命令行中。
例如,假设您想直接访问 mysql 控制台。你可以使用这样的命令:
ssh user@example.com "mysql -u blub -pmypass"
Run Code Online (Sandbox Code Playgroud)
这可行,但问题是,您可以在 ssh shell 进程的命令行中看到密码。
为了解决这个安全问题,我想要这样的东西:
ssh user@example.com "mysql -u blub -p\$(ssh-on-client 'cat pass-file')"
Run Code Online (Sandbox Code Playgroud)
它将cat passfile在 ssh 客户端而不是服务器上执行。有这样的事情吗?你有什么其他技巧可以做到这一点吗?
更新:我感谢参考我的例子的答案,但除非他们回答真正的问题,否则我不会接受它们。也就是说,是否可以从 ssh 会话内与 ssh 客户端计算机进行通信。(我知道这可能构成一个可能的安全问题)
可能的解决方案:
小智 5
尝试使用 <。
ssh user@example.com "mysql -u blub -p" < 文件
如果“文件”中的第一行是您的密码,则“应该”将其用于密码提示,然后其余部分将用于 sql 部分。
如果您只是在远程服务器上执行 sql 文件,请尝试:
ssh user@example.com "mysql -u blub -p <file.sql" < 密码
| 归档时间: |
|
| 查看次数: |
5983 次 |
| 最近记录: |