1. 设置公钥:
先看下cat ~/.ssh/id_rsa.pub是否有内容,如果有说明已经建立了公钥
如果没有,执行下面步骤:
ssh-keygen –t rsa –C “yourname@example.com”
(双引号中填写你注册GitLab的用户名邮箱)
生成对应账号的公钥和私钥。~/.ssh/id_rsa.pub里面的内容便是公钥。
2. 将公钥放到GitLab上的SSH Keys Settings
SSH Key的界面如下:
其中,Title内容随便填,Key内容即是~/.ssh/id_rsa.pub中的内容。
Id_rsa.pub中的内容大致如下:
填完后,点击Add key即可。
3. 这个时候可以在客户端试下是否可以克隆仓库
设置一个工程文件夹,进入该文件夹后,使用如下命令:
git clone git@sy******************************search/search-manager.git
(其中,clone后的内容在GitLab上Project下找到,位置如下:
)
如果出现无法克隆,出错信息如下:
Cloninginto 'search-manager'...
sign_and_send_pubkey:signing failed: agent refused operation
Permissiondenied (publickey).
fatal: Could not read from remote repository.
则增加如下配置:
a.出现这种错误的可能原因是没有在新机器上安装我们已经存在的ssh key,为了这样做,仅仅只需要复制私钥到~/.ssh目录,然后调用:
$ ssh-add ~/.ssh/id_rsa
b.另一个可能的原因是(我觉得就是这个原因):在~/.ssh文件夹中缺失.config文件。
这种情况下,只需要创建它,并粘贴如下内容至文件中即可:
Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
配置好后应该就可以克隆了。