1 Git配置
打开Git Bash,配置用户信息,
1# 配置用户名和邮箱
2git config --global user.name "github用户名"
3git config --global user.email "github注册邮箱"
2 SSH配置
Git和GitHub之间可以通过HTTPS、SSH、GitHub CLI等形式来连接,这里我们使用SSH方式连接。
SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在Git中一般命名为id_rsa.pub, id_rsa。公钥放到远程主机,私钥保存在本地。
当本地主机需要登录远程主机时,①本地主机向远程主机发送一个登录请求,②远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。③本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,④远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。
执行下面命令生成ssh密钥文件,会提示你指定保存路径(默认是C:/Users/%USERNAME%/.ssh/id_rsa
),然后确认密码。使用默认配置可以直接回车跳过,但是并不推荐,如果之前生成过密钥文件,会提示覆盖。这边指定了保存路径为C:/Users/%USERNAME%/.ssh/id_rsa.github
。
1# 生成 ssh 密钥
2ssh-keygen -t rsa -C "github注册邮箱"
在GitHub设置里点击New SSH key
添加公钥,在Title
中填写名称,方便区分,接着以文本方式打开之前生成的.pub
公钥文件,Ctrl + A
全选,然后复制内容并粘贴到Key
中,点击Add SSH key
,确认GitHub密码后,完成配置。
在默认保存路径C:/Users/%USERNAME%/.ssh/
下,创建一个名为config
的文件,输入以下内容,IdentityFile
后面是之前配置的密钥的路径。如果之前保存过其它SSH密钥,可以依照相同格式进行配置。然后回到Git Bash,执行chmod 600 ~/.ssh/config
添加读写权限。
1# github
2Host github.com
3IdentityFile ~/.ssh/id_rsa.github
4User git
测试配置,出现successfully authenticated
说明成功
1# 测试配置
2ssh -T git@github.com
如果提示Could not resolve hostname github.com: No address associated with hostname
,使用IPAddress查询GitHub真实IP地址,然后添加到C:\Windows\System32\drivers\etc\hosts
文件中。
1140.82.114.4 github.com
推荐使用114DNS,可以避免此情况,也无需改动hosts文件。
ssh连接超时
如果出现ssh: connect to host github.com port 22: Connection timed out
问题,22端口被拒绝了,可以尝试连接443端口,在C:/Users/%USERNAME%/.ssh/config
里继续添加:
1HostName ssh.github.com
2Port 443
3PreferredAuthentications publickey