使用 bash 脚本向 SSH 客户端发送命令?

使用 bash 脚本向 SSH 客户端发送命令?

大家下午好,

我最近意识到我能够使用<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 中实现。

相关内容