2010-11-03 86 views
1

這裏是情況:我有一臺機器住在我家(讓我們稱之爲house_machine),並且我的辦公室還有另一臺機器(稱之爲office_machine)。即時通訊使用ssh與dsa密鑰身份驗證和沒有密碼身份驗證從office_machine訪問home_machine。我在home_machine上建立了一個ssh服務器,並將在office_machine上生成的公鑰添加到home_machine上的authorized_keys文件中。這工作正常 - 我可以從office_machine ssh進入home_machine只是使用密鑰,沒有密碼。在兩個不同的帳戶上使用相同的公共ssh密鑰

現在的問題:我想訪問home_machine,當我訪問其他辦事處只需使用屬於office_machine的公鑰。即我想將公鑰(id_dsa.pub)放在USB驅動器上,並將其複製到另一個辦公室的.ssh目錄中。從我在這個網站上看到的,其他人似乎已經能夠做到這種類型的事情,但它不是工作。當我試圖簡單地把id_dsa.pub在新機器上,並做ssh -v [email protected]_machine調試消息結尾:

debug1: Offering public key: .ssh/id_dsa 
debug1: Server accepts key: pkalg ssh-dss blen 433 
debug1: read PEM private key done: type DSA 
debug1: Authentications that can continue: publickey 
debug1: No more authentication methods to try. 
Permission denied (publickey).

我的臨時解決方案已設置「PasswordAuthentication yes把」在home_machine sshd_config中,只是使用密碼到home_machine。然而這會使使用密鑰授權的地方變得無關緊要。

在此先感謝!

回答

2

您需要複製的不僅僅是公鑰 - 您需要私鑰。

在ssh中,您將公共放在服務器端,但客戶端需要擁有私鑰。

您想將id_dsa文件(不是id_dsa.pub)複製到您的USB密鑰(確保它使用密碼保護,以防萬一它丟失!)。

然後,您可以使用該密鑰登錄從具有訪問密鑰的任何機器home_machine:

的ssh -i /路徑/到/用戶id_dsa的@ home_machine

(它看起來像你可能在office_machine上已經有了不同的私鑰,可以通過粘貼的內容來判斷 - 您可以使用ssh-agent

另外,檢查/ var/log/secure以查看sshd可能拒絕密鑰驗證的原因(這通常是一個問題對.ssh目錄及其祖先的權限)。

+0

感謝隊友 - 這確實工作。如果你想將id_dsa複製到你的/home/userX/.ssh/目錄,你還需要在登錄時運行'exec/usr/bin/ssh-agent $ SHELL',然後'ssh-add'作爲userX,否則客戶端現在不會關於新的私鑰。 – mulllhausen 2010-11-03 04:37:17

+0

對代理的良好調用 - 不同環境與代理交互的細節(假設它正在使用 - 它不必是)根據操作系統和特定構建而變化很大。或者,(除非您確定該帳戶非常安全,否則我不建議),您可以刪除密鑰上的密碼,然後避免代理人的需要。我使用代理在Linux上啓動我的窗口管理器,所以所有進程都有一個代理連接。 OS X無縫地爲您處理鑰匙串集成和代理。 – 2011-08-19 00:59:31

相關問題