gitlab使用ssh一直提示Permission denied的问题

使用http链接进行操作正常,但是由于http对于文件尺寸的限制,我们的项目历史文件较多,达到200多M,这就需要修改gitlab和nginx的一系列参数了,但是最后并没有搞定这个问题,还是觉得ssh的方式更加简单一些


使用ssh链接进行操作的时候,总是出现下面的问题

[user@host ~]$ git clone [email protected]:projectname/proj.git
Cloning into itemcenter-all...
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'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:[email protected]

这样就可以直接使用新的仓库了,再把代码push上去就完成仓库的迁移了,git用着真舒服

你可能感兴趣的:(项目管理)