如何透過堡壘(代理)使用來自堡壘(代理)而非來源的密鑰 ssh 到伺服器

如何透過堡壘(代理)使用來自堡壘(代理)而非來源的密鑰 ssh 到伺服器

所以我本質上是想這樣做:

ssh [email protected] -t ssh bob2@test-vm

如果我只是將其放入終端,上面的方法就可以正常工作,但是我很難嘗試透過 .ssh 設定檔複製它。

這是我在設定檔中的內容:

Host bastion
     HostName 35.192.152.35
     User bob2

Host test-vm
     User bob2
     FOrwardAgent yes
     ProxyCommand ssh bastion nc %h %p 2> /dev/null

但是,它出現錯誤,提示“權限被拒絕”,公鑰檔案無效?我從這篇文章中得出了以上內容: https://unix.stackexchange.com/questions/124078/how-to-ssh-to-a-server-using-another-server-with-key-from-the-second-server

不知何故,它對那個人有用,但似乎對我不起作用。我還嘗試在所有各方(來源、堡壘和伺服器)的 sshd_chroot 配置中允許代理轉發和 TCP 轉發,但這並沒有什麼區別。

如果我強制指定身份路徑:

Host bastion
     HostName 35.192.152.35
     User bob2
     IdentityFile /Users/bob/.ssh/id_rsa

Host test-vm
     User bob2
     FOrwardAgent yes
     ProxyCommand ssh bastion nc %h %p 2> /dev/null
     IdentityFile /home/bob2/.ssh/id_ed25519

然後它會出現同樣的錯誤,除了說找不到目錄“/home/bob2/.ssh/id_ed25519”

有人有什麼想法嗎?

答案1

一旦您意識到堡壘是用於擊敗網路防火牆而不是用於儲存金鑰,您可以將其變更為具有最少配置的 2 個命令解決方案。

在本機電腦 A 上,請確保正在執行 ssh 代理程式。

對 B 執行一次性命令,其中 B 具有以下配置:

Host B
        ForwardAgent yes
        User proxyuser

並執行以下命令:

$ ssh B ssh-add # and possibly a reference to a non-standard key

此時,您的本機 ssh-agent 將在其快取中包含遠端金鑰。

之後,簡單的-Jor ProxyJumptoC將「正常工作」:

Host C
        User user
        ProxyJump proxyuser@B

$ ssh C

由於額外的一次性命令略有不便,在我看來,您可以保持配置相當合理。

您可以問自己一個問題:如果金鑰無論如何都會快取在本機上,那麼將金鑰儲存在堡壘上是否真的可以為您提供額外的安全性。當然還有一個小小的好處不是將金鑰儲存在磁碟上,但如果您的本機電腦被駭客攻擊,那麼讀取檔案或與載入金鑰的 ssh 代理程式進行通訊並沒有太大區別。

答案2

看來您希望您的配置讓 test-vm 在堡壘中尋找金鑰。所以我建議:

  1. 將密鑰檔案複製到 bastion 中 bob2 的 .ssh 資料夾中。
  2. 添加代理命令在您的配置中使用 ssh-add 。

答案3

以下對我有用......與你的幾乎相同,除了我確實指定了最終目的地的IP位址(可能與你的情況無關)並且我必須複製從堡壘到本地主機的金鑰,因為我的 ssh_config 正在此處查找金鑰文件,而不是在堡壘中途:

==== added to .ssh/config ====
Host mybastion
    HostName 133.35.41.9
    User bastuser
    IdentityFile /Users/bchapman/.ssh/bast_priv.key

Host mytarget
    HostName 109.0.1.38
    ProxyCommand ssh -q -W %h:%p mybastion
    User targuser
    IdentityFile /Users/bchapman/.ssh/targ_priv.key
==============

之後我可以 ssh mytarget、scp localfile mytarget: 等就好了

相關內容