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

如何在Fedora Linux的openssh-server中禁用RSA和ECDSA密钥

如何在Fedora Linux的openssh-server中禁用RSA和ECDSA密钥

我完全懂你在小型Beowulf集群里想只用Ed25519的心思——毕竟它在速度和空间效率上确实甩RSA、ECDSA几条街,轻量集群里这点优势太重要了。之前你试过的方法没生效,大概率是没搞定Fedora里openssh自动生成密钥的机制,下面给你一套彻底解决的步骤:

  • 第一步:先停掉当前运行的sshd服务,避免操作过程中服务偷偷重建密钥:

    sudo systemctl stop sshd
    
  • 第二步:清理现有的RSA和ECDSA密钥文件,要把私钥和公钥一起删掉:

    sudo rm /etc/ssh/ssh_host_rsa_key* /etc/ssh/ssh_host_ecdsa_key*
    
  • 第三步:修改sshd配置文件,锁定只使用Ed25519密钥:
    打开配置文件(用你顺手的编辑器就行,比如nano):

    sudo nano /etc/ssh/sshd_config
    

    找到所有以HostKey开头的行,做如下调整:

    • 给RSA和ECDSA的行前面加#注释掉
    • 确保Ed25519的行没有注释(去掉前面的#,如果有的话)
      调整后应该是这样:
    #HostKey /etc/ssh/ssh_host_rsa_key
    #HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    

    接着在文件里新增一行,强制服务器只提供Ed25519的密钥算法,彻底解决ECDSA优先的问题:

    HostKeyAlgorithms ssh-ed25519
    

    保存并退出编辑器(nano按Ctrl+O回车,再Ctrl+X)。

  • 第四步:禁用并屏蔽自动生成密钥的systemd服务:
    这才是你之前删了密钥又自动重建的核心原因——Fedora的openssh-server会通过sshd-keygen相关服务自动补全缺失的密钥。咱们把它彻底封死:

    sudo systemctl disable --now sshd-keygen.service
    sudo systemctl mask sshd-keygen@.service
    

    mask命令会让这个服务无法被任何方式启动,从根源上杜绝自动生成的可能。

  • 第五步:重启sshd服务,让所有配置生效:

    sudo systemctl restart sshd
    
  • 最后验证一下效果:
    从客户端用verbose模式连接服务器,查看密钥算法信息:

    ssh -v your_username@your_server_ip
    

    在输出里找类似这样的行,确认只有ssh-ed25519:

    debug1: kex_exchange_identification: host key algorithms: ssh-ed25519
    

    同时去/etc/ssh目录下检查,应该不会再出现RSA或ECDSA的密钥文件了。

备注:内容来源于stack exchange,提问作者4Dummies

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:59:09