同时配置 gitee, github 公钥
参考地址:http://www.manongjc.com/detail/22-cutqnazacuuwcop.html
清除 git 的全局设置
如果已经配置Git,需要先清除git 的全局设置,如果没有就跳过这一步。
git config --global --list
查看是否设置
删除设置
git config --global --unset user.name
git config --global --unset user.email
git config --global --unset yser.name
git config --global --unset yser.email
创建 ssh key
.ssh文件位置:C:\Users\用户名\.ssh
cd ~/.ssh # 进入 .ssh 文件夹下
ssh-keygen -t rsa -C "github邮件地址" -f id_rsa_github
ssh-keygen -t rsa -C "gitee邮件地址" -f id_rsa_gitee
完成后会在~/.ssh / 目录下生成以下文件
id_rsa_github
id_rsa_github.pub
id_rsa_gitee
id_rsa_gitee.pub
在 Github 和 Gitee 中添加 public key
分别复制 .ssh 下的 id_rsa_github.pub 和 id_rsa_gitee.pub 中的内容到以下网址添加 ssh 公钥
https://github.com/settings/keys
https://gitee.com/profile/sshkeys
创建配置文件 解决ssh冲突
在 .ssh 文件夹中创建 config 文件
添加以下内容
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
测试连接是否正常
ssh -T git@github.com
ssh -T git@gitee.com
添加多个 github 账号
原文地址:https://gist.github.com/jexchan/2351996
同样在 .ssh 文件夹下生成 keygen,注意,id_rsa_github_xxx 为你要起的名字
ssh-keygen -t rsa -C "github邮件地址" -f id_rsa_github_xxx
同样把 .ssh 文件夹下新生成的 pub 文件添加到 github ,然后修改 config 文件为以下
# github
Host github.com-用户名
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
Host github.com-用户名
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github_xxx
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
测试连接是否正常
ssh -T git@github.com-用户名
重点:设置仓库的 remote 的 url 为 ssh 连接,而不是 http,查看远程 url
git remote -v
# origin https://github.com/xxx
# origin https://github.com/xxx
# upstream https://github.com/xxx
# upstream https://github.com/xxx
把以上远程地址修改为 ssh ,ssh 地址语法:ssh://git@github.com/仓库地址.git
例如我的仓库地址为:https://github.com/Chao-SuperStudio/SuperRename
,那么就按以下的命令设置
git remote set-url origin ssh://git@github.com-chao-research/Chao-SuperStudio/SuperRename.git
接下来使用 git push
等命令就无需使用 Windows 的用户凭据进行登陆了
注意:测试连接需要加上你的用户名
ssh -T git@github.com-用户名
ssh -T git@gitee.com
问题
Connection Timeout port 22
绝大部分是网络原因