具有相同主目錄的多個 chroot 使用者的授權金鑰

具有相同主目錄的多個 chroot 使用者的授權金鑰

我們正在使用 OpenSSH_5.3p1 運行 CentOS 6.9,並為具有相同主目錄(安裝到 htdocs)的外部使用者建立 chroot 帳戶。問題是該文件.ssh/authorized_keys2由第一個用戶擁有(並且這已經有效)。我怎樣才能讓它為其他用戶工作?

我嘗試AuthorizedKeysFile在 sshd_config 中新增多個檔案路徑,但出現錯誤garbage at end of line

我嘗試在第二個用戶的匹配區塊中新增AuthorizedKeysFilein sshd_config,但出現錯誤'AuthorizedKeysFile' is not allowed within a Match block

我無法更改主目錄,因為否則路徑與實際的開發路徑不同。

有什麼建議如何解決嗎?我是否必須將 OpenSSH 升級到支援多個條目的新版本AuthorizedKeysFile(我想我必須使用 rpm 建置它)?之後的安全性更新怎麼樣?

答案1

一種選擇是使用令牌為每個使用者提供唯一的authorized_keys檔案。

人 sshd_config

AuthorizedKeysFile

指定包含可用於使用者驗證的公鑰的檔案。該格式在 的 AUTHORIZED_KEYS FILE FORMAT 部分中進行了描述sshd(8)AuthorizedKeysFile%T可能包含在連接設定期間被替換的 形式的令牌。定義了以下標記:%%被替換為文字%%h被替換為正在驗證的使用者的主目錄,以及%u替換為該用戶的用戶名。擴展後,AuthorizedKeysFile被視為絕對路徑或相對於使用者主目錄的路徑。可以列出多個文件,並用空格分隔。或者,可以將此選項設定為none跳過檢查文件中的使用者金鑰。預設為.ssh/authorized_keys .ssh/authorized_keys2.

強調我的。

所以你可以設定:

AuthorizedKeysFile    .ssh/%u_authorized_keys

然後為用戶foo建立一個authorized_keys文件.ssh/foo_authorized_keys

關於權限的註釋

人 sshd

~/.ssh/authorized_keys
……
如果其他使用者可以寫入該檔案、~/.ssh目錄或使用者的主目錄,則該檔案可能會被未經授權的使用者修改或取代。在這種情況下,sshd 將不允許使用它,除非該StrictModes 選項已設定為 no

因此,您可能需要將鑰匙放在外面.ssh/,或設定StrictModesno。如果您設定StrictModesno確保其他使用者無法authorized_keys為其他人建立金鑰,或刪除其他使用者的授權金鑰。可能最好做類似的事情:

AuthorizedKeysFile    .ssh_%u/authorized_keys

.ssh_foo/為使用者建立一個foo只能foo讀/寫的目錄。


您可以選擇是否也允許.ssh/authorized_keys使用

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

這將允許“正常”形式authorized_keys仍然有效,並且authorized_keys文件必須由您的用戶擁有並具有正確的權限,否則它將被忽略。仍然考慮到不應該authorized_keys為另一個用戶創建文件,這可能意味著以 root 身份觸摸該文件,因此它是空的。

相關內容