大家下午好,
我最近意识到我能够使用<enter>~C
转义序列从远程 SSH 连接将命令发送回本地工作站,例如:
[root@host ~]#
[root@host ~]#
ssh> !ip ad
现在,我希望能够使用 bash 脚本来自动在本地工作站上运行命令或执行其他操作,但我找不到任何以编程方式将命令发送回此 shell 的方法,也没有找到其他询问/尝试过的人。需要说明的是,我并没有尝试通过 SSH 将命令发送到远程服务器 - 而是尝试通过客户端从 SSH 连接将命令发送回我的工作站(如上图所示)。
如果有人有任何建议或知道如何做到这一点,我将非常感谢您的帮助。谢谢!
答案1
我认为这是不可能的,因为转义字符永远不会到达远程系统上的 Bash。它在远程 bash 能够设置它之前就被本地 SSH 客户端拦截了。
我知道这不是您想要的,并且根据您的情况可能不可行,但替代解决方案可能会实现您的目标:
通过从远程计算机通过 SSH 返回到本地计算机来在本地计算机上运行该命令:
[root@remote-host ~]# ssh your-local-machine ip ad
答案2
由于安全问题,您将无法通过 SSH 连接从远程主机运行本地命令。
退出连接并传递命令的方式是通过终端,即从本地服务器。
因此,如果您想通过 SSH 连接运行连接和脚本,您可以尝试查看 expect,但它将通过在另一个应用程序中嵌入或包装 SSH 连接来实现,而不是直接从远程 shell 中实现。