Security
配置 Ubuntu 以允許通過 pulic/private 密鑰和 sudo 無需密碼的 ssh 登錄
我正在設置一個新的 Ubuntu 13.04 伺服器。我創建了一些使用者並將他們用於 ssh 身份驗證的公鑰複製到他們的主文件夾中。通過密碼登錄將被禁用。到目前為止一切正常,但如果我通過 ssh + 私鑰登錄,我將無法 sudo。我必須輸入密碼,但所有密碼都是空的。
我發現了一些如何更改 /etc/sudoers 的提示,但也有很多警告不要手動編輯文件。所以我的問題是:
- 僅使用沒有密碼的公鑰/私鑰身份驗證是否安全?
- 配置此行為的正確方法是什麼?
你真的在談論兩個不同的事情。將 SSH 配置為僅進行基於密鑰的身份驗證是 sshd 配置的一部分,而 sudo(無密碼或無密碼)由 pam 處理。你真正應該做的是:
將 SSHD 配置為僅允許 SSH 密鑰身份驗證
編輯您
/etc/ssh/sshd_config
以根據需要修改和/或添加以下內容PubkeyAuthentication yes PasswordAuthentication no
然後重啟
sshd
服務。配置 sudo
您需要選擇您的 sudo 組並修改 sudoers 文件,使用
visudo
命令並添加類似這樣的內容。%wheel ALL=(ALL) ALL
這將允許輪組中的每個人以任何使用者身份執行任何命令。請注意,他們需要輸入密碼才能執行此操作。預設情況下,大多數發行版都讓他們輸入自己的密碼,但有時 sudo 配置為讓他們輸入目標密碼。
或者,您可以將 sudo 配置為根本不要求輸入密碼。我不建議這樣做,除非服務帳戶執行自動操作。在這種情況下,您可以僅指定服務帳戶只能執行特定命令。但是,您可以通過將上述行更改為以下內容來刪除 sudo 密碼要求:
%wheel ALL=(ALL) NOPASSWD: ALL