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

GCP上Ubuntu 18.04如何正确在sshd_config中添加MACs、KEX算法

问题根因

你遇到的报错核心原因是配置的hmac-sha1-512-etm@openssh.com算法不存在:SHA1哈希算法最大输出长度仅为160位,不存在512位的hmac-sha1变种,属于拼写错误,同时你还重复写了两次该错误算法,导致sshd校验配置失败无法启动。

正确配置sshd_config MACs项的步骤

1. 改前备份配置

每次修改sshd配置前先备份原文件,避免配置错误无法回滚:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d)

2. 确认当前系统支持的合法MAC算法

Ubuntu 18.04自带的OpenSSH版本为7.6p1,所有支持的MAC算法可以通过以下命令查询,仅能从返回结果中选择配置项:

ssh -Q mac

3. 修正MACs配置

你需求的配置修正错误、去重后的合法写法如下:

MACs hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com

4. 配置合法性校验(必须操作,避免锁死实例)

修改完配置后绝对不要直接重启SSH服务,先执行配置校验命令,无任何输出则代表配置合法,有报错会直接提示错误行号和原因:

sudo sshd -t

5. 重启服务并验证连通性

校验通过后再重启SSH服务:

sudo systemctl restart ssh

重启完成后不要关闭当前已连接的SSH会话,新开一个终端窗口测试SSH连接,确认可以正常登录后再关闭旧会话。

GCP实例SSH锁死的应急修复方法

如果已经出现无法SSH连接的情况,可以通过两种方式修复:

  • 启用实例的串行控制台访问,直接通过GCP控制台的串行端口登录实例,修改配置后重启SSH服务即可恢复
  • 将故障实例的系统启动盘卸载,挂载到同一区域的其他正常Ubuntu实例上,修改挂载磁盘中的/etc/ssh/sshd_config文件后卸载,挂回原实例启动即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 09:36:03