我有一臺開發人員的機器,並且我設置了SSH密鑰以允許他們訪問服務器。 .ssh中的公鑰和私鑰顯然對此人可見。保護SSH密鑰
有沒有辦法保護這些鑰匙?如果我不希望將這些密鑰複製到另一臺服務器的可能性,我可以做任何事嗎?
默認情況下,ssh-agent以登錄用戶身份運行,所以我可能無法拿走用戶對〜/ .ssh文件夾的訪問權限。
感謝, Tabrez
我有一臺開發人員的機器,並且我設置了SSH密鑰以允許他們訪問服務器。 .ssh中的公鑰和私鑰顯然對此人可見。保護SSH密鑰
有沒有辦法保護這些鑰匙?如果我不希望將這些密鑰複製到另一臺服務器的可能性,我可以做任何事嗎?
默認情況下,ssh-agent以登錄用戶身份運行,所以我可能無法拿走用戶對〜/ .ssh文件夾的訪問權限。
感謝, Tabrez
你希望允許開發者使用的關鍵,但不能複製它。
爲此,您可以將密鑰存儲在開發人員無法完全訪問的服務器上。一種實現方式如下:
開發人員現在可以通過使用密鑰託管服務器上運行的代理登錄到從第二個服務器上的其他地方,但他們從來沒有獲得任何殼或機會檢查/複製的關鍵文件託管服務器。
此解決方案的缺點是,所有開發人員的會話均通過密鑰管理服務器以及第二臺共享服務器進行傳輸。如果密鑰管理服務器是遠程的,這可能是不利的。開發人員使用它將文件(SCP或SFTP)傳輸回本地計算機也很困難且不直觀。
另一種解決方案將涉及編寫軟件開發者的機器轉發SSH代理請求通過專用連接到一個真正的代理鍵託管服務器上本地創建一個存根SSH代理服務器功能。隨着一點點的工作,你可以設置爲關鍵託管服務器(本身SSH連接,我推薦)的專用連接自動啓動開發人員的機器上一個簡單的子shell有存根SSH代理的插座在它的環境,使他們能夠「只使用它「,並且這個解決方案可以非常實用和用戶友好。我自己做了這個,但它超出了Stackoverflow答案的範圍。
不,如果您將密鑰存儲在文件中,則無關緊要。如果密鑰存儲在硬件(智能卡)中,有方法可以防止複製。 – Zoredache 2012-02-15 01:20:48
SSH並不意味着限制基於機器的訪問 – madth3 2012-02-15 01:39:23
我認爲你可以檢查'man sshd_config'並配置'HostCertificate'和/或'Match'來限制用戶到特定的外出主機。 – nicerobot 2012-02-15 03:22:34