Security

配置 Ubuntu 以允許通過 pulic/private 密鑰和 sudo 無需密碼的 ssh 登錄

  • July 26, 2013

我正在設置一個新的 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

引用自:https://serverfault.com/questions/524814