SSH跳转服务器多用户认证策略配置咨询
SSH跳转服务器多用户认证策略配置咨询
看起来你已经把跳转服务器上不同用户的认证规则梳理得很清晰了,目前的核心问题是otheruser的认证方式配置不符合「密码/公钥二选一,而非同时使用」的需求,我来帮你调整并补充细节:
一、修正核心配置问题
你当前给otheruser的配置是:
Match User otheruser AuthenticationMethods publickey,password
这里的逗号代表必须同时通过两种认证(先验证公钥,再要求输入密码),而你需要的是「二选一」,所以要把逗号改成空格,同时加上禁用多因素认证的配置:
Match User otheruser AuthenticationMethods publickey password ChallengeResponseAuthentication no
额外加上ChallengeResponseAuthentication no是为了确保这个用户不会触发全局开启的PAM多因素认证,完全符合你“不用F2A”的要求。
二、确保otheruser的登录前置条件
- 如果要支持密码登录:执行
passwd otheruser给该用户设置有效密码 - 如果要支持公钥登录:将用户的公钥写入
/home/otheruser/.ssh/authorized_keys,同时确保目录权限为700,文件权限为600(避免sshd因为权限过高拒绝读取公钥文件)
三、验证配置并重启服务
- 先检查sshd配置是否合法,避免重启失败:
sshd -t
如果没有输出任何内容,说明配置没问题。
2. 重启sshd服务(根据你的系统选择对应命令):
# Systemd系统(如Ubuntu 18.04+/CentOS 7+) systemctl restart sshd # SysVinit系统 service sshd restart
四、测试登录验证
分别用两种方式测试otheruser的登录:
- 公钥登录:确保客户端使用对应私钥,无需输入密码即可成功登录
- 密码登录:在客户端临时禁用公钥认证(比如执行
ssh -o PubkeyAuthentication=no otheruser@your-jump-server),验证仅输入密码就能成功登录
其他配置确认
你的现有配置里,其他用户的规则是完全没问题的:
root用户强制使用PAM的2FA认证,符合要求restricted用户仅允许密码登录,逻辑正确- 其余无密码用户会自动使用公钥登录(因为他们没有密码,无法通过密码认证环节)
备注:内容来源于stack exchange,提问作者Jaime Dalton Carbone




