如果 B 上的 X11 转发已关闭,则使用 X11 通过 B 从 A 到 C 进行 ssh

如果 B 上的 X11 转发已关闭,则使用 X11 通过 B 从 A 到 C 进行 ssh

我需要连接到ssh只能通过前门服务器“B”访问的计算机“C”。我可以通过ProxyCommand配置文件中的设置或以下方式实现此目的:

ssh -t user@B ssh user@C

在计算机“C”中,X11 转发是,但在服务器“B”上它是关闭的,而且我不是管理员/root。

有没有办法通过 X11 转发将“A”连接到“C”(即使“B”已关闭)?

答案1

ssh 隧道可以通过提供从您的计算机到服务器 C 的“直接”路由来解决这个问题 - 但您需要能够登录到服务器 B...

user@serverA:~/ $ ssh -L2222:serverC:22 user@serverB

正常登录,打开一个新终端并

user@serverA:~/ $ ssh -p 2222 serverCusername@localhost

当你连接到本地主机(即服务器 A)上的端口 2222 时,你的连接将通过 SSH 连接到服务器 B,此时它会在服务器 B 上打开一个新的随机高端口,并作为新连接(源自服务器 B)进行连接,并尝试连接到服务器 C

在第一个 ssh 命令中,当你引用 serverC 时,使用 serverB 认为/可以解析/可以连接的任何名称/ip

答案2

ProxyJump显然,您可以使用此方法使用代理进行连接,但首选方法是使用或切换进行设置-J,这将导致从您的计算机而不是中间计算机对您进行身份验证,并且不会限制 SSH 提供的任何功能(端口转发、X11 转发等)。您可以使用以下方法实现相同的目的

ssh -J user@B user@C

也可以在配置文件中这样写

Host C
  User user
  ProxyJump user@B

或者如果你有旧版本的 OpenSSH,请使用ProxyCommand

Host C
  User user
  ProxyCommand ssh -W %H:%p user@B

然后连接ssh -Y C

相关内容