精排版
| 闲来无事,想着整理一下 GitHub,又突然想起了19年7月 GitHub 按照国籍对账号进行限制的事,于是寻思着在 Gitee 上也搞一份。 声明:虽然网上已经有一堆了,但是作为菜鸟,还是记录下来比较好,不喜勿喷! |
| 准备一个 GitHub 账号和 Gitee 账号 |
ssh-keygen -t rsa -C "your_email@example.com" # -C 添加备注 # 或 ssh-keygen # 默认不添加备注
参考:ssh-keygen
2. 添加 SSH Key 公钥到 GitHub 和 Gitee 上复制公钥到剪切板(Mac):
pbcopy < ~/.ssh/3. 添加 URL 到本地 Git Repo 或 clone 线上创建的 Repo 到本地 3.1 首次 push 时遇到 Permission denied (publickey).pub # 生成的 SSH Key 会放在用户目录的 .ssh 目录下
对于这个问题,有 3 种解决方案:
-
使用默认 id_rsa 文件名
即,在生成 SSH Key 时,使用默认文件名,不使用自定义文件名(,直接回车)
-
使用 ssh-agent 代理管理私钥
$ eval "$(ssh-agent -s)" # 后台启动 SSH Agent > Agent pid 59566 $ ssh-add ~/.ssh/
# 添加私钥到 SSH Agent,注意:[ssh-add -l -E sha256](https://askubuntu.com/a/363550)[ 只会添加默认文件名的私钥 ](https://askubuntu.com/a/363550) > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/username/.ssh/id_rsa (RSA) $ ssh -T git@github.com # 验证是否能连接到 GitHub > Hi username! You've successfully authenticated... 参考:GitHub - Error: Permission denied (publickey)
-
在 .ssh 目录下创建 config 文本文件并进行相关配置
# github Host github.com # Host 别名 HostName github.com # 真实的域名地址 IdentityFile /Users/
/.ssh/ # id_rsa 的文件路径 PreferredAuthentications publickey # 可选,配置登录时用什么权限认证【publickey, password publickey, keyboard-interactive 等】 User <用户名> # 可选,配置用户名 # gitee Host gitee.com HostName gitee.com IdentityFile /Users/ /.ssh/ PreferredAuthentications publickey User <用户名>
直接输入 yes,这会在 .ssh 目录下自动生成一个 known_hosts 文件。
这是因为 SSH 需要验证远端 Host 的真实性,而验证的途径则是通过 SSH key fingerprint ,因此,遇到该情况时有两个选择:
- 不关心远程主机的真实性,直接输入 yes
- 手动对比验证
提示输出的密钥指纹:SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
GitHub 目前支持的密钥指纹:点 GitHub’s SSH key fingerprints
参考:https://stackoverflow.com/a/52583808
4. 分别 push 到 GitHub 和 Gitee 即可成功git push github main git push gitee main5. 为了避免以后每次提交都 push 两次,写个脚本
#!/bin/bash -eu
BRANCH=$1
echo 'Pushing to Gitee......'
git push gitee "${BRANCH}"
echo 'Pushing to Github......'
git push github "${BRANCH}"
将脚本拷贝到 /usr/local/bin 下:cp ./mypush /usr/local/bin/mypush
现在,可以直接使用脚本一次性 push 到 GitHub 和 Gitee 了。
mypush main
点击下载脚本 mypush
参考文章- 代码同时推送到 GitHub 和 Gitee
- git@github.com: Permission denied (publickey)
- git—如何解决The authenticity of host ‘github.com (192.30.255.112)’ can’t be established.



