You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器SSH登录替换为FIDO2后仍需输密码的问题咨询

SSH使用FIDO2密钥仍要求输入密码的排查原因

以下是几个常见的原因及对应排查、解决方法:

1. 服务器SSH服务未启用公钥验证

登录服务器,检查/etc/ssh/sshd_config配置文件:

  • 确认PubkeyAuthentication配置项的值为yes(默认可能已开启,但需手动确认)
  • 若要彻底禁用密码验证,可将PasswordAuthentication设为no(建议先确保公钥验证正常生效后再修改)
  • 检查AuthorizedKeysFile路径是否与实际一致,默认路径为~/.ssh/authorized_keys,若有自定义修改需对应匹配

修改配置后重启SSH服务:

sudo systemctl restart sshd

2. 客户端未指定使用FIDO2密钥连接

默认情况下SSH会优先尝试加载默认命名的密钥(如id_rsa、id_ed25519),若你的FIDO2密钥文件名非默认,需手动指定:

  • 临时指定密钥连接:
    ssh -i ~/.ssh/id_mykey_sk USER@<IP-Address>
    
  • 永久配置:编辑客户端~/.ssh/config文件,添加对应主机的配置规则:
    Host <IP-Address>
        User USER
        IdentityFile ~/.ssh/id_mykey_sk
    
    保存后直接执行ssh USER@<IP-Address>即可自动使用该FIDO2密钥。

3. 服务器上密钥相关文件权限不符合要求

SSHD对用户目录和密钥文件的权限有严格限制,权限过松会被判定为不安全,进而拒绝使用公钥:

  • 登录服务器,执行以下命令修正权限:
    chmod 700 ~
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

4. 密钥复制过程不完整或出错

检查客户端公钥文件~/.ssh/id_mykey_sk.pub的内容,与服务器~/.ssh/authorized_keys中的对应条目是否完全一致,确保没有多余空格、换行或字符缺失。

5. SSH版本不支持FIDO2密钥

ed25519-sk类型的FIDO2密钥需要OpenSSH 8.2及以上版本支持:

  • 客户端执行ssh -V,服务器执行sshd -V,检查版本是否达标,若版本过低需升级OpenSSH。

内容的提问来源于stack exchange,提问作者mepi0011

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:20:21