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 yes在 SSH 代理中使用更大的金鑰儲存時工作得非常好。將正確訊息轉發到第一跳伺服器似乎有問題。我希望我的問題足夠清楚以理解我的問題。

答案1

首先,如果這聽起來像是我在做出假設,我深表歉意,因為我無意侮辱任何人的智商。

我也不完全肯定我完全理解你的問題,但由於到目前為止還沒有其他答案,我想我應該嘗試一下。

不幸的是,如果沒有關於您的 Nwtwork 和 DNS 配置的更多信息,很難準確地確定問題所在。

因此,我只是列出一些建議和資源,供您使用(當然,如果它們相關的話)。

首先,如果相關機器目前不在網域中,我會考慮將「主機名稱」設定中的 FQDN 替換為機器的 IP 位址(如下例所示)。

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

相關內容