如何将这些命令组合起来通过 SSH 连接到远程机器?

如何将这些命令组合起来通过 SSH 连接到远程机器?

我有三台机器,我们把它们称为工作笔记本电脑,都在不同的网络上。我的目标是通过 SSH 远程登录笔记本电脑。这是我目前的做法:

  1. 将三台机器连接到同一个大学 VPN。
  2. 运行此命令ssh -R 19999:localhost:22 <work_ip>
  3. 运行此命令笔记本电脑ssh <work_username>@<work_ip>
  4. 运行此命令笔记本电脑(现在远程连接到工作) ssh <home_username>@localhost -p 19999:。

在第 4 步结束时,我现在远程连接到笔记本电脑

是否有一行 SSH 命令可以简化这些步骤,以便我可以使用它(例如在 VS Code 中)从笔记本电脑

答案1

1 & 2应该被视为一项单独的任务,因为您可以让 Home 连接到 Work(如果没有连接,可能无法运行远程命令,对吗?)。也许使用自动SSH或者添加一个计划作业来尝试在断开连接时重新连接 vpn/ssh?

3 & 4可以使用语法将其合并为一行ssh user@host [command]。您可能需要指定-t以获取工作终端,特别是如果步骤 4 需要像密码这样的交互步骤:

[user@Laptop ~]$ ssh -t work_user@work_ip ssh home_user@localhost -p 19999

使用 进行转发-J通常更干净(监听套接字更少),但如果您已经设置了反向隧道,则情况并非如此。它还需要在工作主机上启用转发:

[user@Laptop ~]$ ssh -J work_user@work_ip home_user@localhost -p 19999

相关内容