keeran Asked: 2022-02-23 02:38:44 +0800 CST2022-02-23 02:38:44 +0800 CST 2022-02-23 02:38:44 +0800 CST sftp 身份验证:同时基于密钥和密码? 772 我可以在 sftp 服务器上同时实现基于密钥和基于密码的身份验证吗?我希望服务器首先进行基于密钥的身份验证。如果正确,则要求基于密码的身份验证。这有可能实现吗? sftp 1 个回答 Voted Best Answer Kamil Maciorowski 2022-02-23T03:42:02+08:002022-02-23T03:42:02+08:00 SFTP 几乎总是(但不一定)使用 SSH 作为传输。身份验证在 SSH 级别执行。因此,您要查找的选项属于 SSH 服务器的配置。 我假设OpenSSH。见man 5 sshd_config[强调我的]: AuthenticationMethods 指定用户必须成功完成才能被授予访问权限的身份验证方法。此选项必须后跟一个或多个逗号分隔的身份验证方法名称列表,或单个字符串 any 以指示接受任何单个身份验证方法的默认行为。如果覆盖默认值,则成功的身份验证需要完成这些列表中至少一个中的每个方法。 例如,publickey,password publickey,keyboard-interactive将要求用户完成公钥认证,然后是密码或键盘交互认证。在每个阶段仅提供一个或多个列表中的下一个方法,因此对于此示例,不可能在公钥之前尝试密码或键盘交互式身份验证。 […] (旁注:和有什么区别?passwordkeyboard-interactive) 看来这个例子正是你想要的。 请注意,该设置不仅会影响 SFTP,还会影响 SSH 的每次使用。AFAIK 你不能轻易地使用与 SFTP 不同的设置,因为身份验证发生在服务器知道你想要 SFTP 之前。虽然服务器足够早地知道用户,所以如果您需要“仅 SFTP 用户”,那么由于条件块 ( Match) 可能只影响他们。 更改配置文件后,您需要重新启动 SSH 服务器或告诉它重新加载配置。sshdOpenSSH 在收到挂断信号 SIGHUP 后重新读取其配置。
SFTP 几乎总是(但不一定)使用 SSH 作为传输。身份验证在 SSH 级别执行。因此,您要查找的选项属于 SSH 服务器的配置。
我假设OpenSSH。见
man 5 sshd_config
[强调我的]:(旁注:和有什么区别?
password
keyboard-interactive
)看来这个例子正是你想要的。
请注意,该设置不仅会影响 SFTP,还会影响 SSH 的每次使用。AFAIK 你不能轻易地使用与 SFTP 不同的设置,因为身份验证发生在服务器知道你想要 SFTP 之前。虽然服务器足够早地知道用户,所以如果您需要“仅 SFTP 用户”,那么由于条件块 (
Match
) 可能只影响他们。更改配置文件后,您需要重新启动 SSH 服务器或告诉它重新加载配置。
sshd
OpenSSH 在收到挂断信号 SIGHUP 后重新读取其配置。