我有三台机器,我们把它们称为工作,家和笔记本电脑,都在不同的网络上。我的目标是通过 SSH 远程登录家从笔记本电脑。这是我目前的做法:
- 将三台机器连接到同一个大学 VPN。
- 运行此命令家:
ssh -R 19999:localhost:22 <work_ip>
。 - 运行此命令笔记本电脑:
ssh <work_username>@<work_ip>
。 - 运行此命令笔记本电脑(现在远程连接到工作)
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