带有 OpenSSH 的 SSH 中继服务器

aHu*_*ter 11 linux ssh

是否可以使用 OpenSSH 中继到其他支持 SSH 的设备,例如路由器交换机等?这是否可以在不在 Linux 上创建定制应用程序的情况下完成?

小智 11

当然; 只需使用 SSH 端口转发/隧道。使用以下命令启动到“代理”机器的 ssh 连接:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
Run Code Online (Sandbox Code Playgroud)
  • $PROXYHOST:您可以通过 SSH 访问的机器
  • $REMOTEHOST: $PROXYHOST 可以连接的机器,但你不能。使用$PROXYHOST可用于引用机器的主机名或 IP
  • $SSHPORT: sshd 在远程主机上监听的端口;最有可能 22
  • $LOCALPORT:本地出站端口 SSH 正在您的本地机器上打开,转发到端口 22 $REMOTEHOST

保持该连接保持隧道正常工作。您可能还想添加-N到命令中,以便此连接不会启动远程 shell,并且您以后也不会意外关闭它。

隧道建立后,请执行以下操作:

ssh -p $LOCALPORT localhost
Run Code Online (Sandbox Code Playgroud)

这将尝试在转发到$REMOTEHOST的 SSH 端口的端口上与您的本地计算机建立SSH 连接。


bah*_*mat 5

在所提供的答案中,Zordache 的解决方案是最佳的整体解决方案。然而,对于后代来说,如果您只是想在不编辑配置的情况下进行临时连接,请使用该-t标志来分配伪终端并直接在中继上执行 ssh。

ssh -t relay.example.com ssh internal.example.com
Run Code Online (Sandbox Code Playgroud)