之前一直用的是https链接协议的方式来建立本地git代码库与远程代码库之间的链接,但是在今年三月份初的时候突然使用https协议链接github不能用了,总是报错。查过很多
发现github方面发布了一个公告。说明了不能使用https的原因。需要怎么处理等云云的。
由于太麻烦了,我就想我们可以使用SSH协议来链接git。而且可以实现免密码链接建立。
以及在一个Windows电脑上链接多个git账户如何实现。
---------------------------------------------------------------------------------下面我们开始操作------------------------------------------------------------------------
我使用的是github账户。
1、生成github.com的私钥公钥
ssh-keygen -t rsa -C email 创建github对应得sshkey,命名文件名为id_rsa_github 密码是你账户的密码
查看生成的文件:
2、登录我们的github账户,在setting中设置。
3、
打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)
测试命令:ssh -T [email protected]
输入密码后可以看到打印的welcome.......如果成功了,那么github那个ssh and GPGkeys这个新建的钥匙是可以变成绿色的。说明可以用了。
下载代码我们可以使用git提供的ssh链接如图:
git clone 链接---------------》下载远程代码
------------------------------------------------------------如何链接到eclipse--------------------------------------------
1、我们先用我们刚刚生成的公钥与私钥配置
配置好后,我们拉去代码或者push代码的时候总是报错:
.jgit.api.errors.TransportException: Algorithm negotiation fail
查了一下说是算法协议失败、解决办法发现一种管用其他的没怎么管用所以推荐用这个:
https://blog.csdn.net/luomingkui1109/article/details/72669551------------从新安装下git插件。
菜单栏Help -> Install New Software...,在Work with中输入http://download.eclipse.org/egit/updates,勾选Eclipse Git Team Provider和JGit,点击Next,进入安装,重启Eclipse,安装完成
然后配置下gitglobal信息。
然后就可以了。
------------------------------------------如何在一个电脑连接多个git账户-------------------------------
参考:https://www.cnblogs.com/popfisher/p/5731232.html
其他的和连接一个账户步骤一样,核心在这里:
1. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
HostName 这个是真实的域名地址
IdentityFile 这里是id_rsa的地址
PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User 配置使用用户名
# 配置github.com Host github.com HostName github.com IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github PreferredAuthentications publickey User username1 # 配置git.oschina.net Host git.oschina.net HostName git.oschina.net IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina PreferredAuthentications publickey User username2
注意: 除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产的