带有OpenSSH的SSH中继服务器


10

是否可以使用OpenSSH中继到其他启用SSH的设备(例如路由器交换机等)。是否可以在Linux上不创建定制应用程序的情况下做到这一点?

谢谢

Answers:


9

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

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST:您具有SSH访问权限的计算机
  • $REMOTEHOST:$ PROXYHOST可以连接的机器,但您不能。使用$PROXYHOST可用于引用机器的主机名或IP
  • $SSHPORT:sshd在remotehost上侦听的端口;最有可能的22
  • $LOCALPORT:本地出站端口SSH在您的本地计算机上打开,该端口转发到端口22上的端口 $REMOTEHOST

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

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

ssh -p $LOCALPORT localhost

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


3

如果您愿意在客户端上更新配置,则可以将客户端设置为使用网关盒作为代理。您的中继箱将需要安装netcat,为了获得最佳结果,您将需要基于密钥的身份验证设置。

这是我在.ssh / config中使用的通过另一个主机进行连接的方法。

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

通过以上操作,您可以从客户端计算机简单地运行命令ssh internal-ssh-host-proxy

如果代理SSH主机具有OpenSSH客户端5.4或更高版本,则不需要netcat,而可以使用内置的netcat模式。

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

抱歉,这不是使用OpenSSH,而是使用netcat在客户端服务器和服务器之间进行中继?
2009年

它使用OpenSSH结合了几乎在所有地方都可以使用的非常通用的实用程序。它不是纯粹的ssh,但我不会说它是潜行的。
Zoredache

不,我同意这不是预定的,但是我想知道是否可以使用OpenSSH进行中继,以便您使用标准的ssh客户端和ssh到运行OpenSSH的盒子,然后该盒子会自动提供对另一台或多台计算机的ssh访问。谢谢
aHunter

1
@aHunter,据记录,openssh 5.4中内置了一个“ netcat模式”,它提供了一个纯的openssh连接-blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode没有外部工具是必需的。
Zoredache

3

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

ssh -t relay.example.com ssh internal.example.com

没有编辑文件的最简单解决方案
Kartoch 2014年

2

您可以使用OpenSSH自动转发连接。在~/.ssh/authorized_keys文件中,您可以指定要执行的命令,该命令可以是第二台计算机的SSH。

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

您最终将看到两个提示Password::一个提示给中继服务器,另一个提示给目标服务器。您始终可以通过使用证书来删除此行为。


听起来很完美,您将如何在openssh中配置sshd?
2009年

请参阅[1]上有关[强制命令] [1]的部分:eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

这是一个了不起的主意。我要做的最后一件事是在防火墙中使用路由打开100个离散端口。然后重复进行冗余处理。这表明我可以创建100个ssh密钥,并将每个密钥链接到它自己的服务器。这也表明我可以完全锁定中继服务器。有些人可能将其称为VPN,但我却有所不同。
理查德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.