2015-11-05 194 views
0

我試圖添加一個新的ssh密鑰。我使用「的ssh-agent -s」啓動服務,我得到這樣的響應:ssh代理啓動但無法連接到認證代理

SSH_AUTH_SOCK=/tmp/ssh-tUlzwbxYNLaZ/agent.9516; export SSH_AUTH_SOCK; 
SSH_AGENT_PID=8992; export SSH_AGENT_PID; 
echo Agent pid 8992; 

但是當我做「SSH-添加的〜/ .ssh/id_rsa」我的錯誤「無法打開與您的身份驗證代理的連接。「啓動命令不起作用?我不確定啓動命令的輸出是什麼意思。

回答

1

您在上面顯示的輸出需要爲,評估爲。很多時候這是通過自動完成的,如eval `ssh-agent`。這將導致

  • SSH_AUTH_SOCK=/tmp/ssh-tUlzwbxYNLaZ/agent.9516; export SSH_AUTH_SOCK;:在SSH_AUTH_SOCK環境變量設置爲給定值。
  • SSH_AGENT_PID=8992; export SSH_AGENT_PID;:將SSH_AGENT_PID環境變量設置爲給定值。

這兩個變量需要設置爲ssh-add才能找到代理。如果您想手動評估它們,您可以複製這些命令,將它們粘貼到您的終端或控制檯中,然後按Enter鍵。然後再次嘗試使用ssh-add

最後一行echo Agent pid 8992;只是打印出您的信息的ssh-agent進程ID。

這些變量不能被硬編碼,因爲套接字和PID是不可預測的。每次你開始ssh-agent你需要使用它打印出來的任何值。

請注意,這些變量僅針對當前shell設置。所以,如果你在終端窗口中進行操作,然後在該窗口中工作,你應該沒問題,但是如果關閉窗口並打開一個新終端,它將不再工作。同樣,如果您登錄到控制檯,然後註銷並重新登錄。

大多數現代桌面環境啓動ssh-agent併爲您設置適當的環境變量,所以如果您使用Gnome或KDE或Unity或您不應該這樣做。如果你手動啓動你的環境,或者使用一些不適合你的裸機,你應該在你的X啓動文件中增加eval `ssh-agent`,例如.xinitrc,以便它在啓動X之前運行。

+0

那麼我到底該做什麼呢?我不擅長這些事情。 –

+0

@ user3784238,在不瞭解你的系統的情況下,你應該能夠運行前兩個'ssh-agent -s'吐出的命令(我的答案中的兩個命令)。將它們複製到您的終端或控制檯中,然後按Enter鍵。然後再次嘗試從同一個終端或控制檯使用'ssh-agent'。 – Chris

+0

太棒了!謝謝 –