如何禁用 SSHD 中特定用户的密码验证

Nic*_*ick 7 security ssh svn authentication

我已经阅读了几篇关于仅将所有用户限制为密钥身份验证的帖子,但是我只想强制一个用户 (svn) 仅使用密钥身份验证,其余的可以是密钥或密码。

我读了/sf/ask/296883821/,但似乎 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
Run Code Online (Sandbox Code Playgroud)

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

有没有办法用我当前的设置来实现这一点?我不想只将服务器限制为密钥,因为如果我丢失了我的密钥,我就会丢失我的服务器 ;-)

Chr*_*s S 14

将 Match 块添加到您的 sshd_config 文件。像这样的东西:

Match Group SSH_Key_Only_Users
    PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

或者如果它真的是一个用户

Match User Bad_User
    PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

有关man sshd_config您可以匹配的内容以及可以设置的限制的更多详细信息,请参阅。


Tho*_*ger 4

PermitEmptyPasswords no您可以在配置中设置参数sshd,并删除某些用户的密码,以强制对他们进行 ssh 密钥身份验证。