在 Windows 主機作業系統、Vagrant Ubuntu 來賓作業系統和 Keepass/Keeagent 中使用代理程式轉送的 SSH

在 Windows 主機作業系統、Vagrant Ubuntu 來賓作業系統和 Keepass/Keeagent 中使用代理程式轉送的 SSH

意圖:能夠部署到lan-example.com任何開發環境;無論是直接來自虛擬作業系統,或是任何單一作業系統系統,甚至是使用 Keepass 中儲存的一個 SSH 金鑰透過網路。目前,我無法在 Vagrant 的作業系統中執行此操作,除非我明確產生自己的金鑰並在每個部署伺服器中對其進行授權。我相信做我想做的事情的方法是透過用戶代理轉發,是嗎?


主機作業系統

  • Windows 7 x64
  • puttygen 產生的 SSH 金鑰:C:\Users\Administrator\.ssh\id_rsa.ppk
  • Keepass 與 Keeagent 儲存我的 SSH 金鑰。 Keeagent 設定為「代理」模式
  • pageant.exe 已安裝但未執行
  • 如果我希望使用我的金鑰連接到外部/內部 LAN 伺服器,Putty 會遵循 Keeagent - Putty 不會在其組態中儲存私鑰位置。

C:\Users\Administrator.ssh\config

Host 192.168.55.2
  ForwardAgent yes

流浪文件

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.network :private_network, ip: '192.168.55.2'
  config.ssh.forward_agent = true
  # Why would I need to set this if Keeagent is handling things?
  config.ssh.private_key_path = '~/.ssh/id_rsa_jake_mitchell.ppk'
end

來賓作業系統(Vagrant)

  • 烏班圖 x64
  • 192.168.55.2,只能透過主機訪問
  • 不存在 SSH 金鑰/home/vagrant/.ssh(我刪除了它們)。目的是讓使用者代理程式透過主機作業系統(Keeagent)轉送來處理使用金鑰

LAN Web Host(內部網路網站)

  • 假設它的域是lan-example.com
  • 它允許僅使用 id_rsa.ppk 公鑰進行 SSH 無密碼登錄
  • 192.168.0.2
  • 在 sshd 中啟用使用者代理轉發

問題:

lan-example.com有效的方法(使用主機作業系統):Putty,無需明確引用 SSH 金鑰即可連線。

什麼不起作用(使用來賓作業系統):因為它顯示沒有任何金鑰可以使用。ssh -v [email protected]

我注意到一些關於Keeagent 測試版這允許我設定 SSH_AUTH_SOCK。我已經這樣做了,並設定了一個 NFS 共享,允許來賓作業系統讀取該檔案;但這並沒有改變任何事情。在這種環境下代理轉發如何運作? Windows 有何不同導致此失敗?

答案1

您需要從啟用代理轉送的主機作業系統(在 Windows 上使用 PuTTY)進行 ssh。然後從該會話中,透過 ssh 從來賓作業系統連接到伺服器。

PuTTY 代理轉發設置

相關內容