前言

家里的电脑不知怎么回事,之前一点问题没有的GitHub,提交Github上的代码时始终连接不上,搜索引擎搜索了好几种方式一点用没有,反而将配置弄得一团糟,于是想初始化项目并重新配置ssh

注意,此为Windows平台

打开Git Bash 并以管理员身份运行

image.png

初始化全局配置

# 查看git 版本
git --version

# 初始化git 全局配置(删除之前的所有配置)
git config --global --unset-all

# 添加全局用户名和邮箱
git config --global user.name "yourname"
git config --global user.email "yourname@email.com"

# 查看当前的全局变量
git config --global -l

image.png

生成多个ssh key,用几个平台生成几个

# gitLab
ssh-keygen -t rsa -C "yourname1@email.com" -f ~/.ssh/id_rsa_gitlab
# gitHub
ssh-keygen -t rsa -C "yourname2@email.com" -f ~/.ssh/id_rsa_github
# gitee
ssh-keygen -t rsa -C "yourname3@email.com" -f ~/.ssh/id_rsa_gitee

在自己的用户目录会生成对应的id_rsa 文件和对应的公钥,打码的为本人公司环境对应的公钥
image.png

添加私钥

# 先运行ssh公钥管理,再添加公钥,否则可能报错Could not open a connection to your authentication agent.
ssh-agent bash

# 添加私钥
ssh-add ~/.ssh/id_rsa_gitlab
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitee

# 查看私钥列表
ssh-add -l

将ssh key添加到对应的Git平台的SSH keys列表中

  • GitHub设置:登陆后点右上角头像 -> Settings -> 左侧菜单SSH and GPG keys -> 点右侧New SSH key按钮 -> Title随便写,Key把公钥~/.ssh/id_rsa_gitlab.pub里的ssh key粘贴上 -> 点Add SSH key添加

image.png
image.png

其它平台类似,就不做截图演示了。

添加配置文件

在存放私钥的文件夹中创建一个文本文档config.txt
输入以下内容:

# github账号配置
Host github.com
    port 22
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile C:\Users\Wrh_1\.ssh\id_rsa_github

# 公司gitlab账号配置
Host ********
    port 22
    User git
    HostName ********
    User git
    PreferredAuthentications publickey
    IdentityFile C:\Users\Wrh_1\.ssh\id_rsa_****

配置文件参数

  • Host: 指定Host别名,建议与HostName相同
  • HostName: 指定Git服务器地址(域名或IP)
  • Port: 指定Git服务器端口(默认80端口可忽略此项)
  • User: 指定用户名(自定义,建议为git)
  • PreferredAuthentications: 指定优先使用哪种方式验证,支持密码和密钥验证方式
  • IdentityFile: 指定对应的私钥文件

测试(显示successfully即为成功)

# 连接测试
ssh -T git@github.com
ssh -T git@*****.com