GitLab克隆代碼時出現Permission denied (publickey,gssapi-keyex,gssapi-with-mic,passwo

第一種,直接使用Http的連接clone代碼

若是使用Http連接仍是出Permission denied或者密碼錯誤等異常狀況,能夠直接在Http連接中添加密碼,以下:

git clone http://xuxiaolong:xxxxxxxx@gitlab.xxx.com
複製代碼

第二種,使用SSH的方式clone代碼。此方式須要在GitLab上配置ssh key

首先,打開本地.ssh文件夾

cd ~/.ssh
複製代碼

查看此文件夾下面是否存在id_rsa和id_rsa.pub兩個文件,若是存在,代表以前有生成過ssh key,若是不存在,能夠經過如下命令直接生成ssh key

ssh-keygen -t rsa -C 'xxx@xxx.com' (‘’中的參數就是你的郵箱地址)
複製代碼

終端輸入此命令,一直回車,直到出現下圖的結果,表示ssh key生成完成

此時.ssh問價夾下面會出現test_rsa和test_rsa.pub兩個文件

打開test_rsa.pub文件,將裏面的全部內容複製到GitLab上對應位置

此時,ssh key配置完成。

若是同時使用GitLab和GitHub,那麼就須要配置多個ssh key

一、使用以下命令,指定文件名生成一個ssh key

ssh-keygen -t rsa -C 'xxx@xxx.com' -f ~/.ssh/gitlab_rsa
複製代碼

此時在.ssh文件夾下面會生成gitlab_rsa和gitlab_rsa.pub兩個文件

二、在~/.ssh文件夾下面新建名爲config的文件,用來配置多個ssh key

# gitlab
Host gitlab.bitautotech.com
    HostName gitlab.bitautotech.com
    User xuxiaolong3
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# 配置文件參數
# Host : Host能夠看做是一個你要識別的模式,對識別的模式,進行配置對應的的主機名和ssh文件
# HostName : 要登陸主機的主機名
# User : 登陸名,不填寫的話,默認使用郵箱做爲登陸名
# IdentityFile : 指明上面User對應的identityFile路徑
複製代碼

此時再次去終端進行clone,第一次會讓你輸入密碼,輸入完成以後就能夠正常clone了。html

參考文章:www.cnblogs.com/hafiz/p/814…

相關文章
相關標籤/搜索