如何从远程触发本地命令ssh PROMPT_COMMAND



我从我的公司笔记本电脑(使用WSL+bash)通过SSH连接到公司Linux服务器,像往常一样ssh user@remote.host(我在远程用户的。SSH/authorized_keys中提供了我的本地rsa公钥,因此我不必给出密码,尽管我不知道这是否重要)。

现在,我希望远程shell提示符(最好在远程~/.bashrc中使用PROMPT_COMMAND变量)触发本地机器上的命令或脚本。公司服务器没有外部访问权限,所以我不能直接创建一个"相反的"服务器。ssh连接。我希望以某种方式利用我连接到服务器的现有会话。

我设法得到的最接近的呼叫似乎是以下关于反向SSH隧道的手册以及netcat侦听- on SO:Stackoverflow和on baeldung:www.baeldung.com/linux。不幸的是,在服务器的发行版中甚至没有nc,所以我被困在那里。

  1. 我可以要求一步一步的例子不使用nc,因此希望,一些替代方法?
  2. 我还可以要求指示所有精确的命令段吗,比如我应该在隧道的远端指定哪个本地主机,等等?事实上,我已经从网络上获取了许多ssh隧道的变体(例如ssh -RfN ...),但没有成功。
  3. 假设企业主机可能对其施加了一些限制,是否有可能实现(也许以其他方式-而不是使用反向隧道)?或者服务器配置在技术上不应该阻碍这种技术本身?

我承认我不是很清楚隧道的机制。提前感谢!

您可以在WSL上设置ssh服务器,并运行以下命令:

ssh -R 2222:localhost:22 your-corporate-linux-server ssh -p 2222 -o StrictHostKeyChecking=no $USER@localhost hostname

上面的命令ssh到your-corporate-linux-server,然后从那里连接回你的WSL,并显示你的WSL的主机名。

您需要在您的-corporate-linux-server上创建ssh密钥对,并将公钥放入WSL的authorized_keys中。

一旦上面的命令工作,你可以在COMMAND_PROMPT上工作。

相关内容

  • 没有找到相关文章

最新更新