使用http链接进行操作正常,但是由于http对于文件尺寸的限制,我们的项目历史文件较多,达到200多M,这就需要修改gitlab和nginx的一系列参数了,但是最后并没有搞定这个问题,还是觉得ssh的方式更加简单一些
使用ssh链接进行操作的时候,总是出现下面的问题
[user@host ~]$ git clone user@gitlab.xx.com:projectname/proj.gitCloning into itemcenter-all...user@gitlab.xx.com's password: Permission denied, please try again.user@gitlab.xx.com's password: Permission denied, please try again.user@gitlab.xx.com's password: Permission denied (publickey,password,keyboard-interactive).fatal: The remote end hung up unexpectedly这个是别人的问题,跟我们的是一样的问题,链接:http://tinyhema.iteye.com/blog/2019754,按照上面的提示,修改了gitlab的配置文件之后,发现问题依旧存在。
最后折腾的时候发现,一个链接https://gitcafe.com/GitCafe/Help/tickets/351,在~/.ssh中添加config文件,并在里面配置host和对应的IdentityFile,这个问题,貌似是由于使用http操作的时候,不需要指定认证文件。这个问题是我一时手贱,ssh-keygen时自己指定了文件的名称所致,没有默认使用id_rsa名称,这个时候需要在config文件中设置匹配才可以,否则貌似无法使用某个默认的私钥,需要在config中强制指定才行
这个时候会弹出弹窗输入密码,输入使用ssh-keygen生成密钥文件时候输入的密码即可
对于多个使用不同私钥的git仓库而言,在config文件中可以设置多个域名以及强制对应的私钥文件,注意这个文件的格式问题:
Host 192.168.83.20
IdentityFile ~/.ssh/test_rsa
Host git.oschina.net
IdentityFile ~/.ssh/oschina_rsa
后面把工程移入新的仓库的时候,使用命令:
git remote rm origin
git remote add origin git:username@domain.com
这样就可以直接使用新的仓库了,再把代码push上去就完成仓库的迁移了,git用着真舒服
联系客服