是否可以使用 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 连接。
在所提供的答案中,Zordache 的解决方案是最佳的整体解决方案。然而,对于后代来说,如果您只是想在不编辑配置的情况下进行临时连接,请使用该-t
标志来分配伪终端并直接在中继上执行 ssh。
ssh -t relay.example.com ssh internal.example.com
Run Code Online (Sandbox Code Playgroud)