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

AWS EC2搭建Git服务时SSH登录密钥使用规则异常咨询

问题根本原因

SSH公钥认证的核心逻辑是客户端持有私钥、服务端持有公钥,不存在客户端使用公钥完成登录的情况,你观察到的“用公钥登录成功”是SSH客户端自动匹配到同路径私钥的假象。

具体差异原因

  • 本地SSH代理缓存差异
    可以正常“用公钥登录”的用户,对应私钥已经被添加到本地ssh-agent缓存中,你执行ssh -i id_rsa.pub时,SSH会自动从代理中读取对应私钥完成认证。其余3个用户的私钥未加入代理缓存,无法自动获取,必须显式指定私钥路径。
    你可以执行ssh-add -l查看本地已缓存的密钥列表验证该情况。
  • 本地SSH配置差异
    检查该正常用户本地~/.ssh/config文件,是否配置了对应EC2公网IP的IdentityFile参数,默认指向了对应私钥文件,无需显式指定即可自动加载,其余3个用户无对应配置。
  • 密钥存放路径/命名差异
    如果该正常用户的私钥存放在~/.ssh/id_rsa默认路径下,SSH客户端默认会自动加载该路径的标准命名私钥,指定同路径公钥时会自动匹配到私钥完成认证。其余3个用户的私钥未放在默认路径,或命名不符合SSH自动读取的规则,无法自动匹配。

验证方法

将该正常用户的本地私钥临时重命名,再执行ssh -i id_rsa.pub username@public.ip,会直接返回认证失败,即可验证上述结论。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:15:04