Security

如何在 SSHD 中禁用特定使用者的密碼驗證

  • July 24, 2012

我已經閱讀了幾篇關於將所有使用者僅限於密鑰身份驗證的文章,但是我只想強制一個使用者(svn)進入密鑰身份驗證,其餘的可以是密鑰或密碼。

我讀了https://stackoverflow.com/questions/4241197/how-to-disable-password-authentication-for-every-users-except-several,但似乎 sshd_config 的“匹配使用者”部分是 openssh- 5.1。我正在執行 CentOS 5.6,並且只有 OpenSSH 4.3。我目前有以下可用的儲存庫。

$ yum repolist
Loaded plugins: fastestmirror
repo id                            repo name                                                                         status
base                               CentOS-5 - Base                                                                   enabled:  3,535
epel                               Extra Packages for Enterprise Linux 5 - x86_64                                    enabled:  6,510
extras                             CentOS-5 - Extras                                                                 enabled:    299
ius                                IUS Community Packages for Enterprise Linux 5 - x86_64                            enabled:    218
rpmforge                           RHEL 5 - RPMforge.net - dag                                                       enabled: 10,636
updates                            CentOS-5 - Updates                                                                enabled:    720
repolist: 21,918

我主要用epel,rpmforge用的是最新版(1.6)的subversion。

有沒有辦法用我目前的設置來實現這一點?我不想僅將伺服器限制為密鑰,因為如果我失去了密鑰,我就會失去我的伺服器;-)

PermitEmptyPasswords no您可以在配置中設置參數sshd,並刪除某些使用者的密碼,以強制對他們進行 ssh 密鑰身份驗證。

將 Match 塊添加到您的 sshd_config 文件。像這樣的東西:

Match Group SSH_Key_Only_Users
   PasswordAuthentication no

或者如果它真的是一個使用者

Match User Bad_User
   PasswordAuthentication no

請參閱man sshd_config有關您可以匹配的內容以及可以設置的限制的更多詳細資訊。

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