gitlab使用ssh拉取代码失败
问题提示:
GitLab: Your account has been blocked.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
问题:账户锁了,服务端认为该账户没得权限了,拒绝该账户获取代码信息。
解决办法:这里有两种解决问题的办法
1.重新配置ssh密钥呗,想那么多干啥
第一步找到怎么配置ssh密钥,右上角有个头像,点一下,里面有个设置,点进去,看到左边的复选框,找到ssh密钥
找到Add key下面有个您的ssh密钥,这个密钥后面有个删除按钮,点一下,删掉它,确定!
然后去你使用ssh的服务器上,切到自己的账户下,找到自己账户的家目录,千万注意不要在root下执行如下命令啊,否则权限乱了还得改权限,而且,万一密钥丢了,DDDD!
cd ~/.ssh
cat id_rsa.pub
然后呢,吧你看到的那段字符串,完整的,一字不少,一字不多的拷贝粘贴到上图的空文本框中,就是那个Key下面的那个文本框,然后标题会自动出现
最后点击Add key就可以了
万一如果最后出现了文件权限的问题,那就改一下就行了!
error: 无法打开 .git/FETCH_HEAD:权限不够
# 修改用户和用户组为自己的用户和用户组
chown xxxx:xxxx .git/FETCH_HEAD
然后就可以了,git pull ssh://git@xxx.xxx.xxx.xxx:22/xxxx/xxxx
或者git pull
2.使用HTTP不也一样可以
既然ssh不待见,那就用更安全的http呗,这是正儿八经要输入密码的,git pull http://git@xxx.xxx.xxx.xxx:80/xxxx/xxxx
其实更多的gitlab都是不支持ssh的,一般都是要用http的。
3.如何生成ssh秘钥
# 检查有没有ssh
ssh
# 一般不可能没有吧。。。没有的话就安装
sudo apt-get update
sudo apt-get install openssh-server
# 记得安装之后要把ssh服务起来,然后生成ssh密钥,这一步不是root就别加sudo了啊,不然权限会乱
ssh-keygen -t rsa
# 将带pub的文件cat一下
cat id_rsa.pub
# 这就是需要拷贝到gitlab页面上的ssh密钥了!