DMIT 公钥已经上传,SSH 为什么仍然拒绝登录?
密钥库与实例绑定是两个步骤;核对账号、私钥和面板重启,再按报错区分认证与网络问题。
文章目录
DMIT 后台能看到公钥,SSH 却报 Permission denied (publickey)。公钥进入密钥库,不代表已经应用到目标实例;本地选错私钥、账号不对应或变更尚未生效,也会得到类似结果。
本地保存私钥,后台提交公钥
公钥通常以 .pub 结尾,私钥是对应的不带这个后缀的文件。复制到后台的是公钥完整一行,连接时选择的是本地私钥,二者不能互换。
需要自己生成密钥时,在已安装 OpenSSH 客户端的 macOS 终端或 Windows PowerShell 使用:
ssh-keygen -t ed25519 -C "dmit-login"
生成时选择未使用的保存路径,提示文件已存在时不要覆盖已有密钥。为私钥设置口令,保存到自己的密码管理器。此前选择订单后生成密钥的用户,应先按官方流程取回对应密钥包,无需为了排错再换一套。
从密钥库应用到具体实例
DMIT 官方文档将两步分开:在 Services → SSH Keys 添加公钥,然后进入目标实例的 Access → Change Key,选择密钥并执行 Save to Instance。
截至 2026 年 10 月 5 日,官方流程要求通过实例控制面板重启来应用变更;在系统内执行 reboot 不能替代这个面板步骤。面板流程涉及强制关机确认,先结束写入任务、保存数据并安排停机。没有完成实例重启时,旧密钥仍可能有效。
连接时明确指定身份
把下方占位项替换为自己的私钥绝对路径、实例 IP 和实际 SSH 端口。官方 Linux 示例使用 root,自行改过系统账号的机器则使用对应账号。
ssh -o IdentitiesOnly=yes -i "PRIVATE_KEY_PATH" -p SSH_PORT root@SERVER_IP
首次连接前,通过可信实例控制台核对主机公钥指纹。换 IP 或重装后遇到指纹变化,也先确认变更原因。macOS 私钥权限过宽时,可以针对该文件执行 chmod 600 "PRIVATE_KEY_PATH";Windows 按 OpenSSH 的 ACL 要求调整,不能照搬 Unix 权限命令。
| 报错 | 优先检查 |
|---|---|
| Connection timed out | 地址、端口、实例状态和防火墙 |
| Connection refused | SSH 服务是否监听目标端口 |
| Permission denied (publickey) | 账号、私钥匹配、绑定与面板重启 |
需要更多认证信息时,在自己的连接命令加入 -v。分享日志前去掉 IP、用户名和本地文件路径,不发送私钥。失去访问时通过商家控制台或工单恢复,不为了排错直接全面开放密码登录。
确认登录后再开始部署
已有 DMIT 实例时,先解决绑定和认证,不用为了登录失败更换机器。仍在选择服务器,可通过DMIT 的实例与套餐入口核对地区、内存、磁盘、流量及账期,把后续备份和恢复也放进预算。
成功进入系统后再检查资源与应用环境。保留原连接直到新的认证方式能独立登录,防火墙和 SSH 配置修改也分步验证,减少把自己锁在实例之外的机会。











