gitlab ssh clone问题解决
公司搭建的gitlab,通过http协议可以clone:
[sisi@pre-srv24 gitlab]$ git clone http://gitlab.test.mycompany.com/dev_group/test_project1.git
Cloning into 'test_project1'...
Username for 'http://gitlab.test.mycompany.com': sisi
Password for 'http://sisi@gitlab.test.mycompany.com':
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 11 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
但是用ssh clone就会失败
[sisi@pre-srv44 ssh]$ git clone git@gitlab.test.mycompany.com:dev_group/test_project1.git
Cloning into 'test_project1'...
The authenticity of host 'gitlab.test.mycompany.com (123.56.11.231)' can't be established.
RSA key fingerprint is 5d:62:8d:b7:d7:51:03:87:ea:65:ce:35:6c:ee:95:7a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.test.mycompany.com,123.56.11.231' (RSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方案
(1)修改/etc/ssh/sshd_config文件
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
(2)改权限及公钥
#chmod 700 /root/.ssh
#chmod 644 /root/.ssh/authorized_keys
并把本地主机的pub公钥放到/root/.ssh/authorized_keys
(3)重启sshd
service restart
但是之后用ip测试连接成功,用域名则失败
[sisi@pre-srv44 ssh]$ ssh -T git@172.16.181.60
Welcome to GitLab, sisi!
[sisi@pre-srv44 ssh]$ ssh -T git@gitlab.test.mycompany.com
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
git clone的结果也是一样的
[sisi@pre-srv44 ssh]$ git clone git@gitlab.test.mycompany.com:dev_group/test_project1.git
Cloning into 'test_project1'...
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
[sisi@pre-srv44 ssh]$ git clone git@172.16.181.60:dev_group/test_project1.git
Cloning into 'test_project1'...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 11 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (11/11), done.
[sisi@pre-srv44 ssh]$
用IP可以克隆,用域名还不行
那么问题在于域名是否正确解析为正确的ip
[sisi@pre-srv44 .ssh]$ host gitlab.test.mycompany.com
gitlab.test.mycompany.com has address 123.56.11.231
[sisi@pre-srv44 ssh]$ ping gitlab.test.mycompany.com
PING gitlab.test.mycompany.com (172.16.181.60) 56(84) bytes of dat
不同方式获取的IP不一致,是导致ssh用域名访问不行的原因
而执行git clone时连接的服务器地址放在.ssh/known_hosts中,从其中可以看出域名被解析成123.56.11.231,
即与host命令查到的ip一致,都是错误的
解决方案:
(1)删除 .ssh/known_hosts中错误的域名ip记录
(2)在/etc/hosts增加域名与正确ip的对应
[sisi@pre-srv44 .ssh]$ sudo vi /etc/hosts
增加一行
172.16.181.60 gitlab.test.mycompany.com
再测试成功如下:
[sisi@pre-srv44 ssh]$ git clone git@gitlab.test.mycompany.com:dev_group/test_project1.git
Cloning into 'test_project1'...
The authenticity of host 'gitlab.test.mycompany.com (172.16.181.60)' can't be established.
RSA key fingerprint is ba:ec:d0:b3:b3:1e:39:10:fc:b2:ac:3d:41:ff:d1:50.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.test.mycompany.com,172.16.181.60' (RSA) to the list of known hosts.
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 11 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (11/11), done.
[sisi@pre-srv44 ssh]$ ls
test_project1
gitlab ssh clone问题解决的更多相关文章
- HTTPS clone !== SSH clone
HTTPS clone !== SSH clone https clone bug SSH clone OK testing SSH key https://www.cnblogs.com/xgqfr ...
- 【docker】【Gitlab】gitlab中clone项目时,IP地址是一串数字(内网Gitlab的IP地址不正确)的问题解决
首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目. 然而在IDEA上clone项目时发现,项目地址如下: git@0096ce63c43f:root/jump.git 或者这样 ...
- window下 配置gitlab ssh非端口22端口
git config --global user.name "jack" git config --global user.email "jackluo@xxx.com& ...
- 关于gitlab的一个问题解决
这两天折腾一个关于gitlab的问题,搞得比较焦头烂额.不过经过折腾,最终还是成功了. 当面对着一个问题,并且看到还没被解决的时候,感觉很不舒服: 努力折腾之后,解决之后,也会身体轻松.或许工程师天生 ...
- gitlab之四: gitlab ssh key 配置
参考: https://www.cnblogs.com/hafiz/p/8146324.html 1. gitlab的右上角. 用户下拉菜单--->setting>ssh密钥,将公钥 ...
- intellij idea 配置gitlab ssh key
1 安装git,登录官网https://www.git-scm.com/download/ ,选择相应系统版本,下载后安装好. 公司网慢的可以用第三方的软件管家下载. 2 打开git bash,不需要 ...
- 创建gitlab ssh 密钥
SSH代表用于管理网络,操作系统和配置的Secure Shell或Secure Socket Shell,并且每次都不需要使用用户名和密码即可验证GitLab服务器. 您可以设置SSH密钥以提供计算机 ...
- windows下如何通过git bash获取gitlab ssh公钥
Gitlab1. 安装git,从程序目录打开 "Git Bash" 2. 键入命令:ssh-keygen -t rsa -C "email@email.com" ...
- 登陆跳板机每天只输入一次token的方法——ssh clone session
自从跳板机升级后,无所不在的token让小PE很是恼火,于是有了这篇文章@_@ Linux or Mac篇 在Fedora或者Mac下很简单,修改~/.ssh/config文件,没有的话,就新建一个( ...
随机推荐
- XXS level4
(1)查看PHP源代码 <?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str ...
- PWA需要的技术
1 Manifest https://developer.mozilla.org/zh-CN/docs/Web/Manifest 2 Service Work ...
- java-内部类访问特点-私有成员内部类-静态成员内部类-局部内部类访问局部变量
1.内部类访问特点: - 内部类可以直接访问外部类的成员,包括私有. - 外部类要访问内部类的成员,必须创建对象. - 外部类名.内部类名 对象名 = 外部类对象.内部类对象: - 例: class ...
- c# 敏捷3 连接,批量处理,分页
class Program { public class post { public int id { get; set; } public string name { get; set; } pub ...
- Go Example--变参函数
package main import "fmt" func main() { sum(1,2) sum(1,2,3) nums := []int{1,2,3,4} //nums. ...
- python基础(七)——网络编程
服务端 我们使用 socket 模块的 socket 函数来创建一个 socket 对象.socket 对象可以通过调用其他函数来设置一个 socket 服务. 现在我们可以通过调用 bind(hos ...
- windows知识
文章目录 系统 修改远程桌面的端口号 IE选项中reset web setting不可用(灰色)的解决办法 重装系统后,修改默认程序安装目录.我的文档.桌面 路径 Keep network addre ...
- skipper 内置的常用filters
skipper 的filter 功能很强大,可做好多方便的扩展 格式: all: * -> filter1 -> filter2 -> "http://127.0.0.1: ...
- Bat相关的项目应用
原 bat 命令如何启动远程PC上的一个程序? 原 bat 自动解压缩,发布asp.net程序 原 bat 自动更新代码,编译,压缩asp.net程序 原 bat自动备份压缩文件 原 bat命令ora ...
- 数据库与java的连接
jdbc: java database connection,也就是java的数据库连接. 作用: 完成数据库数据和内存数据的交互. 为了屏蔽不同数据库的差异,在内存和各种数据库之间建立了一个接口标准 ...