当 Host 和 Hostname 不同时 SSH 代理转发

当 Host 和 Hostname 不同时 SSH 代理转发

在我的客户端上,我设置了一个 SSH 代理,并配置了以下示例

Host gitserver
  Hostname gitserver.example.com
  ForwardAgent yes
  User git
  IdentityFile C:\Users\user\.ssh\id_rsa.pub
  IdentitiesOnly yes

在我希望通过代理转发的第一个跳转服务器上,如何正确使用转发功能,而无需强制检查 SSH 代理的所有身份而不会出现错误too many authentication failures
如果我将 SSH 代理限制为包含 5 个或更少的密钥,我可以让它工作,因为这在允许的身份验证尝试次数之内。如果我尝试gitserver在服务器上使用主机别名,它不知道它在客户端 SSH 配置上的作用。
我是否需要在服务器上为此主机设置正确的 SSH 配置?
一定有一个比必须配置我希望使用代理转发的每台服务器更便携的选项。

我不认为这是 Windows 特有的问题,因为IdentitiesOnly yesSSH 代理中较大的密钥存储工作得很好。这似乎是将正确信息转发到第一跳服务器的问题。我希望我的问题足够清楚,可以理解我的问题。

答案1

首先,如果听起来我是在做出假设,我深感抱歉,因为我无意侮辱任何人的智商。

我也不完全肯定我是否完全理解您的问题,但由于到目前为止还没有其他答案,所以我想我会尝试一下。

不幸的是,如果没有关于您的网络和 DNS 配置的更多信息,就很难确定问题到底出在哪里。

因此,我将简单列出一些建议和资源,供您使用(如果它们相关的话)。

首先,如果所讨论的机器当前不在域中,我会考虑用机器的 IP 地址替换“主机名”设置中的 FQDN(如下例所示)。

Host Hostname
      Hostname 192.168.0.250
      ForwardAgent yes
      User username
      IdentityFile C:\Users\username\.ssh\id_rsa

您可能还想运行“ssh-添加-L“命令,确认您的 SSH 代理正在运行并且持有您的密钥。

关于上述命令的其他信息/详细信息可以通过以下链接获得。

https://superuser.com/a/1141035

至于在 Windows 中运行 OpenSSH 代理转发,您可能需要查看以下文章,因为它们有一些特定于 Windows 10/11 的重要步骤。

https://richardballard.co.uk/ssh-keys-on-windows-10/

http://blog.zencoffee.org/2022/11/openssh-on-windows-11/

最后,需要注意的是,直到最近,Windows 10 才真正支持 SSH 代理转发。

话虽如此,您可能需要验证您的 Windows 和 OpenSSH 版本是否兼容,关于 SSH 代理转发功能。

我希望这至少能有所帮助。

答案2

然而,要回答你的问题,如果你阅读优点和缺点,你就会发现似乎自动化是不可能的。

SSH 代理转发的缺点:

  • 用户必须通过 SSH 进行部署;不能使用自动部署流程。
  • 对于 Windows 用户来说,运行 SSH 代理转发可能会比较麻烦。

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys

相关内容