【配置】Win10配置Git和SSH

1 Git配置

打开Git Bash,配置用户信息,

1
2
3
# 配置用户名和邮箱
git config --global user.name "github用户名"
git config --global user.email "github注册邮箱"
git_config

2 SSH配置

Git和GitHub之间可以通过HTTPS、SSH、GitHub CLI等形式来连接,这里我们使用SSH方式连接。

SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在Git中一般命名为id_rsa.pub, id_rsa。公钥放到远程主机,私钥保存在本地。

当本地主机需要登录远程主机时,①本地主机向远程主机发送一个登录请求,②远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。③本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,④远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。

执行下面命令生成ssh密钥文件,会提示你指定保存路径(默认是C:/Users/当前用户/.ssh/id_rsa),然后确认密码。使用默认配置可以直接回车跳过,但是并不推荐,如果之前生成过密钥文件,会提示覆盖。这边指定了保存路径为C:/Users/当前用户/.ssh/id_rsa.github

1
2
# 生成 ssh 密钥
ssh-keygen -t rsa -C "github注册邮箱"
ssh_git

GitHub设置里点击New SSH key添加公钥,在Title中填写名称,方便区分,接着以文本方式打开之前生成的.pub公钥文件,Ctrl + A全选,然后复制内容并粘贴到Key中,点击Add SSH key,确认GitHub密码后,完成配置。

ssh_github

在默认保存路径C:/Users/当前用户/.ssh/下,创建一个名为config的文件,输入以下内容,IdentityFile后面是之前配置的密钥的路径。如果之前保存过其它SSH密钥,可以依照相同格式进行配置。然后回到Git Bash,执行chmod 600 ~/.ssh/config添加读写权限。

1
2
3
4
# github
Host github.com
IdentityFile ~/.ssh/id_rsa.github
User git

测试配置,出现successfully authenticated说明成功

1
2
# 测试配置
ssh -T git@github.com
ssh_test

如果提示Could not resolve hostname github.com: No address associated with hostname,使用IPAddress查询GitHub真实IP地址,然后添加到C:\Windows\System32\drivers\etc\hosts文件中。

1
140.82.114.4 github.com
hosts

推荐使用114DNS,可以避免此情况,也无需改动hosts文件。