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

迁移SSH密钥后Ed25519私钥自行损坏(仅存1字节)求助

迁移SSH密钥后Ed25519私钥自行损坏(仅存1字节)求助

兄弟,这种情况我之前也碰到过,大概率是Mac的Keychain在背后搞鬼!先给你分析下可能的原因和解决办法:

可能的核心原因:Keychain对SSH密钥的托管

Mac的Keychain会自动托管你添加进去的SSH私钥(比如你用过ssh-add -K命令把密钥加入Keychain),这时候系统会替换本地的私钥文件为一个仅1字节的占位符(就是你看到的那个"N"),真正的私钥内容被存在Keychain里了。你手动打包复制~/.ssh目录的时候,复制的只是这个占位符,不是真实的私钥,自然没法用。而且因为旧机器上的私钥已经被Keychain托管替换,所以旧机器上的文件也变成了1字节。

解决办法分两种情况:

情况1:旧机器的Keychain里还存着完整私钥

  1. 打开「钥匙串访问」(Keychain Access),在搜索框输入ssh,找对应你的Ed25519私钥的条目(名字一般是id_ed25519或者你自定义的密钥名)
  2. 右键这个条目,选择「导出项目」,保存格式选.p12,设置一个导出密码(记得记下来)
  3. 把这个.p12文件传到新机器,同样用「钥匙串访问」导入它
  4. 把导入的密钥转换成OpenSSH格式的私钥:
    ssh-keygen -p -f ~/.ssh/id_ed25519 -m pem
    
    按照提示输入之前设置的导出密码,再设置新的私钥密码(可以留空),这样就能得到正常的Ed25519私钥文件了

情况2:旧机器Keychain里也找不到私钥了

那只能重新生成Ed25519密钥:

ssh-keygen -t ed25519 -C "your-email@example.com"

然后把新生成的公钥(id_ed25519.pub)部署到所有需要访问的服务器的~/.ssh/authorized_keys里。

后续迁移建议

以后Mac之间迁移工作环境,尽量用系统自带的「迁移助手」,它会正确处理Keychain和SSH密钥的关联,不会出现这种手动复制的坑。

备注:内容来源于stack exchange,提问作者Loren Gilmore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:24:51