719*_*016 8 ssh remote-desktop google-cloud-platform
我有一台运行在 OSX 上的 Ubuntu 16.04 VirtualBox 机器(即机器 A)连接到大学校园网络。我想偶尔从我的笔记本电脑 ssh 进入机器以远程协助我的同事,我查看了不同的选项。
似乎选项之一是“反向 ssh”(与“端口转发”或“ssh 隧道”相关)。我的笔记本电脑没有固定 IP,所以我不能直接反向 ssh。可能的解决方案是使用代理机器。这个想法是当我需要帮助我的同事时,他们会输入来自机器 A 的连接指令,这将创建一个正在运行的 GCP 实例,然后我将能够使用这个桥接(代理)从外部连接到机器 A ?) GCP 机器。
/ Academic intranet
+----------+ |
| GCE | | +----------+
| instance |<----|--| Machine A|
+----------+ | +----------+
|
\
/ Academic intranet
+----------+ |
+-------------+ ssh | GCE | ssh | +----------+
| Laptop dynIP|---------->| instance |-----|->| Machine A|
+-------------+ +----------+ | +----------+
|
\
Run Code Online (Sandbox Code Playgroud)
我们有一个 Google 云帐户并gcloud安装在机器 A 上。据我所知,GCP 已经有一种非常简单的方法可以在 GCP 中设置隧道:
https://cloud.google.com/community/tutorials/ssh-tunnel-on-gce
我试过了,它有效。这让我猜想在 GCP 上最后一步应该也可以这样做:让我能够在正在运行的 GCP 实例上打开一个 SSH 浏览器窗口,这样我就可以从那里 ssh 进入机器 A。
有任何想法吗?
编辑:
以下是我在 gce 指令上遵循 ssh 隧道的距离:
在机器 A 上:
gcloud compute instances create --zone us-west1-a tunnel
gcloud compute ssh --zone us-west1-a tunnel -- -N -p 22 -D localhost:2210
Run Code Online (Sandbox Code Playgroud)
在我的笔记本电脑上,我可以打开https://console.cloud.google.com/compute/instances,然后打开浏览器窗口进行 SSH 连接。
从 GCP 实例 hostname tunnel,我想我错过了类似的东西:
ssh-into-machine-A-from-here
Run Code Online (Sandbox Code Playgroud)
这是我缺少的最后一个命令。或者 ssh 隧道可能gcloud需要额外的标志/参数。
0) 使用如下命令在 GCP 上创建一个实例:
gcloud compute instances create --zone us-west1-a tunnel
Run Code Online (Sandbox Code Playgroud)
0b) 单击https://console.cloud.google.com/compute/instances上的“SSH”链接以打开浏览器窗口。
0c) 在浏览器窗口中,编辑 sshd_config 文件以启用GatewayPorts yes.
0d) 设置 gcloud CLI 并第一次连接如下图:
gcloud compute ssh --zone us-west1-a tunnel
Run Code Online (Sandbox Code Playgroud)
这将在 .ssh 中创建 ssh 密钥$HOME/.ssh/google_compute_engine。与它断开连接。现在密钥已创建,请按照以下步骤操作。
1) 要建立从 GCE 到机器 A 的转发:在机器 A 上运行以下命令:
ssh -i ~/.ssh/google_compute_engine -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -f -N -R 2022:*:22 gce_user@gce_address
Run Code Online (Sandbox Code Playgroud)
2) 现在,要从您的笔记本电脑连接到机器 A,您可以使用带有 GCP 实例的浏览器窗口并执行以下操作:
ssh -p 2022 A_machine_user@localhost
Run Code Online (Sandbox Code Playgroud)
然后这应该会询问 A_machine_user 上的密码并将您连接到机器 A。
| 归档时间: |
|
| 查看次数: |
2491 次 |
| 最近记录: |