Ssh
ssh 代理轉發失敗並顯示“無法打開與您的身份驗證代理的連接”
當我嘗試使用OpenSSH 客戶端
Could not open a connection to your authentication agent
的代理轉發選項 ( ) 從中間伺服器連接到第三台伺服器時收到錯誤消息。-A
與中間伺服器的第一次連接使用載入到ssh-agent
. 嘗試連接到最終伺服器時會顯示錯誤消息。我的 OpenSSH 客戶端設置為允許使用
ForwardAgent yes
in轉發~/.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
嗎?