我正在为一个新系统设置一些服务器,并决定做一些稍微不同的事情。我遇到了一个我似乎无法克服的问题。我想要的配置是有一个堡垒服务器和N个其他服务器,这些服务器只能通过堡垒访问--这是一个非常典型的配置。
与通常的做法不同的是,我希望使用签名的SSH密钥进行身份验证。对于单个服务器来说,这是非常直接的,但在使用堡垒时却会抛出扳手。
现在,我有两个配置相同的服务器。我可以使用签名的SSH密钥直接访问它们。但是,如果我尝试将其中一个用作堡垒/跳转主机,则无法连接到另一个。我的~/.ssh/config看起来是这样的:
Host ssh.uswe2
HostName ssh.uswe2.example.com
User ec2-user
IdentityFile ~/.ssh/ssh-rsa-cert
Host *.uswe2 !ssh.uswe2
HostName %h.example.com
User ec2-user
ProxyCommand ssh -W %h:%p ssh.uswe2.example.com
IdentityFile ~/.ssh/ssh-rsa-cert使用此配置,我可以使用ssh ssh.uswe2登录到堡垒,但当我试图用ssh server2.uswe2连接到另一台服务器时,会出现以下错误:
channel 0: open failed: administratively prohibited: open failed
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host不过,我仍然可以通过公共网络使用ssh server2.uswe2.example.com直接连接到服务器,因此我知道CA和cert正在正确加载。
我的第二个想法是,也许这与如何配置堡垒有关,但是如果我在两个服务器上将我的公钥添加到~/.ssh/authorized_keys中,我可以毫无问题地进行连接。
我在这里完全不知所措,很难排除故障,因为我一直把自己锁在服务器之外。我希望有人能在以下方面帮助我:
发布于 2019-11-01 20:21:39
channel 0: open failed: administratively prohibited: open failed当服务器SSH网关服务器禁用端口转发时,会发生此问题。在您的示例中,ssh.uswe2.example.com可能将AllowTcpForwarding的配置设置为"no“。你想把它改成“是的”。此外,您可能需要允许GatewayPorts。想了解更多信息,请看文档。https://linux.die.net/man/5/sshd_配置
https://serverfault.com/questions/988149
复制相似问题