Mac出厂重置后如何复用已保存的SSH私钥配置Git?
旧SSH私钥复用操作指引
不需要先生成新公私钥对再替换,直接按照以下步骤操作即可:
1. 初始化SSH目录
打开终端执行以下命令,创建用户专属SSH配置目录并设置基础权限:cd ~ && mkdir -p .ssh && chmod 700 .ssh && cd .ssh
2. 导入旧私钥
- 执行命令创建私钥文件,以下以最常用的默认RSA密钥文件名
id_rsa为例,如果你之前的私钥是自定义文件名,替换为对应名称即可:nano id_rsa - 将你保存在文本文件中的旧私钥内容完整粘贴到打开的编辑器中,按
Ctrl+O后回车确认保存,再按Ctrl+X退出编辑器。 - 如果同时保存了旧公钥,用同样的方式创建
id_rsa.pub文件并粘贴公钥内容即可;没有保存公钥也不影响,后续可以通过私钥直接导出。
3. 设置密钥文件权限
SSH对密钥文件的权限有严格要求,权限过高会直接拒绝访问,执行以下命令设置正确权限:
chmod 600 id_rsa # 若存在公钥则执行下面这行 chmod 644 id_rsa.pub
4. 把私钥加入SSH代理(Mac专属配置)
执行以下命令将私钥加入系统SSH代理,同时存储到Mac钥匙串,避免每次使用都要输入私钥密码:
eval "$(ssh-agent -s)" ssh-add --apple-use-keychain ~/.ssh/id_rsa
如果你的私钥设置过密码,执行后输入对应密码即可,没有设置密码则直接完成。
5. 验证配置是否生效
以GitHub为例,执行以下命令测试连通性,如果你用其他Git托管平台,替换为对应平台的SSH测试地址即可:ssh -T git@github.com
返回包含You've successfully authenticated的提示即表示配置成功,你之前在各个Git平台绑定的旧公钥依然可以正常使用,不需要做任何修改。
补充说明
如果你的私钥不是默认文件名,或者需要为不同托管平台配置不同密钥,可以在~/.ssh/config文件中添加对应规则,示例如下:
Host github.com HostName github.com User git IdentityFile ~/.ssh/你的自定义私钥文件名 AddKeysToAgent yes UseKeychain yes
如果需要导出公钥,执行以下命令即可生成和旧公钥完全一致的公钥文件:ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
内容的提问来源于stack exchange,提问作者Juanito
相关产品推荐
相关产品推荐

