当且仅当 SSH 隧道在端口 X 上处于活动状态时运行应用程序

当且仅当 SSH 隧道在端口 X 上处于活动状态时运行应用程序

我正在运行一个代码服务器在我的远程 Ubuntu 机器上,现在我的启动方法是

  1. ssh -t -t user@server "code-server"在一个终端上(-t -t我从
  2. ssh -N -L 8443:127.0.0.1:8443 user@server在第二个终端上
  3. 在浏览器上打开应用程序

然后当我想关闭它时,我只需关闭两个终端即可。我的问题是是否可以仅使用一个连接来完成此操作,目前我必须进行两次身份验证,因为这需要两个 ssh 会话,一个用于启动应用程序并在关闭时发送 KILL,另一个用于隧道。

答案1

我已经测试了以下内容,它似乎有效:

ssh -t -t -L 8443:localhost:8443 user@server "sleep 3"

Connection to server closed.

它会等待 3 秒钟,然后关闭 SSH 会话。我想说你可以将你的应用程序放在引号中而不是sleep 3或删除整个应用程序"sleep 3",这将为你提供交互式 shell。

相关内容