前言
进入公司后,公司有自己的gitlab,加上自己也在用GitHub和gitee,琢磨了一天,写下过程
补充遇到坑了
当发现设置了ssh,使用ssh -t git@gitee.com 是欢迎的,但是clone就是拒绝的 我们选择另外一个生成的方法:有rsa 和 ed25519 这两种
1 设置多个ssh先
补充
设置name和email
git config --global user.name '用户名称'
git config --global user.email '登录邮箱'
生成密钥:
ssh-keygen -t rsa -C '登录邮箱'
2 设置config
在C:\Users\用户名.ssh 下创建config文件,内容如下:
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
# gitlab
Host 10.1.1.1(举例)
HostName 10.1.1.1(举例)
port 226 (有额外的非80端口需要这个)
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gosuncn
3 坑
因为是公司gitlab,没有域名,一开始也不知道端口是什么,就设置了web中gitlab的端口10080/10081,一直都不对
琢磨一天,发现在公司Gitlab的web版本创建一个空白项目 就有得看了
把这里的orginssh 打码的地方,port端口和地址写到第二布的config配置文件中就可以了
4.添加公钥
去到Gitlab的web服务,在设置里面添加ssh公钥
5.测试
成功!
$ ssh -T git@gitee.com
$ ssh -T git@github.com
另外
6.解决设置SSH后,push/pull还需要密码
因为你一开始下载项目用的不是ssh链接的,而是http
首先查看:
git config -l
得到如下:
remote.origin.url=http:/省略
这里就说明了,我们使用的是http的方式,所以需要密码
解决
- 修改这个remote
- 删除项目,重新用ssh方式下载
选择ssh克隆的 就完美解决了