SSH CA 签名密钥通过堡垒失败

SSH CA 签名密钥通过堡垒失败

我正在为新系统设置一些服务器,并决定做一些不同的事情。但我遇到了一个似乎无法解决的问题。我想要的配置是拥有一个堡垒服务器和 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 和证书已正确加载。

我的下一个想法是,这可能与堡垒的配置方式有关,但如果我在~/.ssh/authorized_keys两台服务器上都添加我的公钥,我就可以毫无问题地连接。

我完全不知所措,很难排除故障,因为我总是把自己锁在服务器之外。我希望有人能帮助我解决以下问题:

  • 这种配置可能吗?
  • 我现在的假设是我的本地 ssh 配置有问题。我是否遗漏了某个特定标志或选项?
  • 我下一步该怎么做才能找出问题所在?

答案1

channel 0: open failed: administratively prohibited: open failed

当服务器 SSH 网关服务器禁用端口转发时,就会发生此问题。就您而言,ssh.uswe2.example.com 可能将 AllowTcpForwarding 的配置设置为“否”。您需要将其更改为“是”。此外,您可能需要允许 GatewayPorts。有关更多信息,请参阅文档。https://linux.die.net/man/5/sshd_config

相关内容