我正在使用 OpenSSH 6.7 版运行 Debian Linux jessie。我AuthenticationMethods
在/etc/ssh/sshd_config
. 我知道这些字符串由以下人员识别AuthenticationMethods
:
keyboard-interactive
gssapi-with-mic
password
publickey
我在哪里可以找到可以与 一起使用的所有有效字符串的列表AuthenticationMethods
?(这样的列表不在 . 的手册页中sshd_config
。)
没有办法……通过网络……提前列出所有有效的 OpenSSH 身份验证方法……永远:你只能挑战第一个,然后是下一个……
这是一项安全功能。你要知道?
/etc/ssh/sshd_config
直接在该服务器上查看。哦,你不能?这就是设计的安全性。因此,由于我已经对 OpenSSH 进行了一段时间的代码审查,因此我将进一步扩展该列表,而不是官方 OpenSSL 文档所涵盖的内容。
可用的身份验证方法有:
gssapi-with-mic
",hostbased
",keyboard-interactive
",none
时用于访问无密码帐户),PermitEmptyPassword
password
”和publickey
”。AuthenticationMethods
指定用户必须成功完成才能被授予访问权限的身份验证方法。此选项后必须跟一个或多个逗号分隔的身份验证方法名称列表,或单个字符串any
以指示接受任何单个身份验证方法的默认行为。如果覆盖默认值,则成功的身份验证需要完成这些列表中至少一个中的每个方法。公钥认证
例如,
将要求用户完成公钥认证,然后是密码或键盘交互认证。在每个阶段仅提供一个或多个列表中的下一个方法,因此对于此示例,不可能在公钥之前尝试
password
或验证。keyboard-interactive
键盘交互认证
对于键盘交互式身份验证,还可以通过在设备标识符后附加一个冒号
bsdauth
或pam
根据服务器配置来限制对特定设备的身份验证。例如,会将键盘交互式身份验证限制在
bsdauth
设备上。多重公钥认证
如果 publickey 方法被列出了不止一次,则
sshd(8)
验证已经成功使用的密钥没有被重复用于后续的身份验证。例如,
需要使用两个不同的公钥成功进行身份验证。
笔记
分隔一对 auth 选项的逗号 (
,
) 分隔符符号在其任何空格分隔符之前首先一起尝试(AND 逻辑)。分隔一个或多个身份验证选项(其选项可以用逗号连接)的空格 (
) 分隔符将单独尝试(或逻辑)。
注意:冒号 (
:
) 分隔符用于将其随附的身份验证方法限制为特定身份验证设备路径机制,例如pam
、bsdauth
和skey
。对于键盘交互式身份验证,还可以通过附加冒号后跟设备标识符bsdauth
、pam
或来限制对特定设备的身份验证skey
,具体取决于服务器配置。例如,keyboard-interactive:bsdauth
将键盘交互式身份验证限制为bsdauth
设备。请注意,
none
列出的每个身份验证选项(除了 )AuthenticationMethods
还应在配置中显式启用其相应的配置设置。例如,如果pubkey
在设置中使用了选项,AuthenticationMethods
那么伴随的配置行PubkeyAuthentication on
也必须在其配置文件中。OpenSSH 代码审查者的详细信息
any
”。这没有非常清楚地记录(或根本没有)。但这是我能找到的。在 OpenSSH 6.2 中,只有 4 种方法
其他人也觉得需要更多的文档。请参阅附件 3045,其中说明了 OpenSSH 7.5:
希望有帮助。