Ssh

ssh 代理轉發失敗並顯示“無法打開與您的身份驗證代理的連接”

  • November 12, 2020

當我嘗試使用OpenSSH 客戶端Could not open a connection to your authentication agent的代理轉發選項 ( ) 從中間伺服器連接到第三台伺服器時收到錯誤消息。-A與中間伺服器的第一次連接使用載入到ssh-agent. 嘗試連接到最終伺服器時會顯示錯誤消息。

我的 OpenSSH 客戶端設置為允許使用ForwardAgent yesin轉發~/.ssh/config,並且中間伺服器AllowAgentForwarding yes在守護程序的配置文件中。客戶端配置不會被系統級文件覆蓋。

我沒有使用終端多路復用器,以避免由於未設置環境變數而導致的錯誤。為了執行代理,我使用並exec ssh-agent zsh驗證兩者都存在於本地環境中。我用來分別為中間伺服器和最終伺服器添加私鑰;我驗證它們是否添加了.SSH_AUTH_SOCK``SSH_AGENT_PID``ssh-add``ssh-add -l

所有伺服器都是最新版本(OpenSSH 5.3),客戶端是 OpenSSH 6.2。

我在此處發布此內容是因為我花了很多時間嘗試使用 Google 找到解決方案、閱讀手冊頁並查閱一本關於 SSH 的流行書籍,但都無濟於事。

找到問題的關鍵是仔細研究調試輸出。

debug1: Remote: Agent forwarding disabled: mkdtemp() failed: Permission denied

中間機器是由使用 AWS 堆棧的雲提供商託管的虛擬伺服器 (RHEL 6.4)。由於我無法解釋的原因,這是/tmp目錄上的權限設置為:

drwxr-x--- 19  727  727  4096 Nov 28 05:30 tmp

通過搜尋,/etc/passwd我找不到 ID 為 727 的使用者。

像這樣更正權限解決了我的問題:

sudo chown 0:0 /tmp
sudo chmod 1777 /tmp

任何人都可以談談目錄的特殊所有權/tmp嗎?

引用自:https://serverfault.com/questions/557999