密钥对登录是什么
密钥对登录用非对称密钥替代密码:公钥放在实例里,私钥由使用者保管,登录时通过签名证明持有私钥。云平台上它有双重作用:既是登录方式,也是创建实例时的身份参数。相比密码,它不容易被暴力破解,也便于批量创建实例时统一身份。
基本信息
| 组成 | 公钥(导入实例)与私钥(用户保管) |
|---|---|
| 平台来源 | 平台生成并下载私钥,或导入已有公钥 |
| 下载限制 | 平台生成的私钥通常只允许下载一次 |
| 适用范围 | Linux 实例普遍支持;Windows 实例多数仍需密码登录 |
| 绑定方式 | 创建实例时指定,或对已有实例绑定或替换,是否需重启视平台而定 |
| 私钥权限 | 本地文件权限过大时,客户端会直接拒绝使用该密钥 |
导入公钥与登录
导入公钥与登录
ssh-keygen -t ed25519 -C 'ops@example.com' # 本机生成密钥对
cat ~/.ssh/id_ed25519.pub # 查看公钥内容,用于导入
aliyun ecs ImportKeyPair --RegionId cn-hangzhou --KeyPairName ops-key --PublicKeyBody "$(cat ~/.ssh/id_ed25519.pub)"
aliyun ecs DescribeKeyPairs --RegionId cn-hangzhou # 核对密钥对清单
chmod 600 ~/.ssh/id_ed25519 # 私钥权限收紧
ssh -i ~/.ssh/id_ed25519 user@<实例IP> # 指定私钥登录常见问题定位
| 现象 | 原因 | 处理 |
|---|---|---|
| 提示权限过于开放 | 私钥文件权限过大 | 把私钥权限收紧到仅属主可读写 |
| 提示密钥被拒绝 | 实例内未绑定对应公钥或绑定的是另一个密钥 | 核对实例密钥对名称与指纹 |
| 可以登录但很快断开 | 安全组或防火墙未放行管理端口 | 确认入方向规则与实例内核防火墙 |
| 多台实例无法统一登录 | 每台绑定了不同密钥 | 统一导入一把密钥并在创建时指定 |
平台生成的私钥通常只允许下载一次,下载后要集中保管并纳入备份。私钥丢失后只能重新绑定新密钥,原有登录方式无法找回。
生产环境把密钥登录与堡垒机结合:运维人员登录堡垒机后按权限转发,减少私钥在个人终端的散落。需要多人共享同一台实例时,用堡垒机做身份区分比共享一把私钥更可控。