有没有办法在 Linux 中对某些账户进行 Kerberos 身份验证,对其他账户进行 ssh-key 身份验证?Kerberos 方法适用于 Windows 和 Linux 中的账户,而密钥方法适用于 Linux 账户。
答案1
在 sshd_config 中启用两者。例如:
AuthenticationMethods gssapi-with-mic publickey
缺少组分隔逗号很重要,这意味着或者, 不是和。
答案2
身份验证远程控制由客户端驱动:ssh 客户端决定在可用的身份验证方法中使用哪种。
如果您只想让用户在 Kerberos 和 ssh-keys 之间进行选择,请确保它们处于活动状态:
GSSAPIAuthentication yes
GSSAPIKeyExchange no
PubkeyAuthentication yes
如果GSSAPIKeyExchange
是,yes
服务器将使用 Kerberos 向客户端进行身份验证,而不一定使用主机密钥。
如果由于某种原因,您想要将可用的身份验证方法限制给某些用户组,则可以使用AuthenticationMethods
以下指令约翰的回答在一个Match
块中:
Match Group <windows_user_group>
AuthenticationMethods gssapi-with-mic
但是我看不出这样做的正当理由,因为当 Kerberos 服务器关闭时,它只会阻止 Windows 用户登录。