我们假设有以下主机:
localhost : my laptop
remoteserver : a server with a public IP which runs a SSH server on port 22. (remoteserver ip for example 194.152.16.111)
private.remoteserver ssh on port 2255: a server with a private IP which is only accessible from remoteserver. (private.remoteserver ip for example 194.152.16.222
)
我想创建 ssh 隧道,这样我就可以通过远程服务器从我的笔记本电脑连接到 private.remoteserver
我试过这个
ssh -L 2255:194.152.16.222:2255 [email protected]
and then from laptop
ssh localhost:2255
但不起作用。我做错了什么?
答案1
最简单的实现所谓的“多跳 ssh”并从主机 A 通过主机 B 连接到主机 C 的方法是使用较新 ssh 版本中提供的ProxyJump
命令开关:-J
ssh -J userB@hostB:portB userC@hostC:portC
仅当使用不同于默认 ssh 端口 22 的端口号时才需要端口号。
或者使用 scp
scp -o 'ProxyJump userB@hostB' localfile userC@hostC:/remote/path/
答案2
您可以将其放入您的 ~/.ssh/config 中
Host <internal.ips>
Proxycommand ssh -C -W %h:%p -q -A <public server ip>
只需确保 internal.ips 可以从公共服务器访问。