SSH密钥无效过期,GCE存在多SSH密钥,求助删除冗余密钥恢复连接
解决GCP Compute Engine冗余SSH密钥删除及连接问题
关键前提说明
- 你用
https://http://35.192.33.20/这种格式登录失败是正常现象——SSH基于TCP直接通信,不支持HTTP/HTTPS协议格式的地址,该问题与SSH密钥无关。 - GCP自动生成的核心SSH文件不能删除:
google_compute_engine、google_compute_engine.pub、google_compute_known_hosts是Compute Engine管理SSH连接时自动创建的,删除会导致GCP控制台的SSH功能失效。
步骤1:确认当前有效的SSH密钥
既然直接用IP35.192.33.20能登录成功,说明本地有一个有效密钥正在被使用。运行以下命令查看SSH调试日志,定位生效密钥:
ssh -v 35.192.33.20
在输出中找到类似如下的行,其中标注的文件名就是当前有效的密钥(对应公钥为同名.pub文件):
debug1: Offering public key: /home/xxx/.ssh/id_ed25519 ED25519 SHA256:xxxxxx agent debug1: Server accepts key: /home/xxx/.ssh/id_ed25519 ED25519 SHA256:xxxxxx agent
这个密钥对需要保留。
步骤2:备份.ssh目录(必做)
删除文件前先备份整个.ssh目录,避免操作失误导致无法连接:
cp -r ~/.ssh ~/.ssh_backup_$(date +%Y%m%d)
步骤3:删除冗余密钥
根据步骤1的结果,保留有效密钥对和GCP自动生成的文件,删除其余冗余密钥。例如,如果有效密钥是id_ed25519,执行以下命令:
rm ~/.ssh/home ~/.ssh/home.pub ~/.ssh/ssh-key-dec6 ~/.ssh/ssh-key-dec6.pub ~/.ssh/ssh-key-v1 ~/.ssh/ssh-key-v1.pub
步骤4:验证连接
再次尝试登录服务器,确认连接正常且无无效密钥错误:
ssh 35.192.33.20
若日志仍存在密钥错误提示,可清理本地known_hosts中的无效条目:
ssh-keygen -R 35.192.33.20
内容的提问来源于stack exchange,提问作者Himanshu Somani
相关产品推荐
相关产品推荐

