Gitlab SSH无法连接但是HTTP可以连接

项目场景:

Gitlab在docker中布置好之后测试,发现SSH无法连接但是HTTP可以连接
提示:这是一个无效的源路径


问题描述

http可以识别为git项目,而ssh无法识别成git项目。
在这里插入图片描述


原因分析:

三种猜想

端口号被占用

尝试查看端口占用情况。

netstat -ano|findstr 3000

无输出记录,一眼顶针,鉴定为假。

SSH配置错误

虽然不太可能(毕竟搞过无数次了,见SSH配置),但是还是尝试一下

ssh -T git@gitee.com

在这里插入图片描述
gitee可以,但是gitlab就不行。在sourcetree内clone一个gitee项目,同样成功识别。

Gitlab权限

故考虑最后一种情况,端口号无法访问,显然是gitlab设置的问题。


解决方案:

进入容器

 docker exec -it gitlab bash

编辑/etc/ssh/sshd_config配置文件

cd /etc/ssh
vim sshd_config

按"i",“o”,“a”,"r"任意字母进入编辑模式,将PermitRootLogin默认值由no修改为 yes
esc退出编辑模式后,输入:wq ,保存后重启下ssh服务让我们的修改生效。
在这里插入图片描述

重启ssh服务 ,注意是重启容器里的ssh

service ssh restart

在这里插入图片描述
最终
在这里插入图片描述

### 配置IntelliJ IDEA通过SSHGitLab拉取项目 #### 设置SSH密钥对 为了能够安全地访问GitLab仓库,需要先生成一对SSH密钥。这可以通过运行`ssh-keygen -t rsa -b 4096 -C "your_email@example.com"`命令完成[^1]。执行此命令时会提示指定保存位置以及输入密码短语;对于大多数情况,默认路径即可满足需求,并可根据个人偏好决定是否设置密码。 #### 添加私钥至SSH代理程序 为了让计算机记住所提供的身份验证信息,在每次启动终端后都需要加载私钥并将其加入到SSH代理服务里去。可以利用如下两条指令实现该功能: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 第一条用于开启新的SSH Agent实例并将环境变量导出给当前shell进程;第二条则是向上述提到的服务注册之前创建好的RSA格式私钥文件的位置。 #### 将公钥添加到GitLab账户 获取刚刚产生的`.pub`结尾的公开部分的内容——即代表用户的唯一标识符之一,接着登录到GitLab网站上自己的资料页面的安全区域里面粘贴进去。这样做的目的是让服务器端知晓哪些客户端是可以被信任允许建立连接的对象[^3]。 #### 在IntelliJ IDEA中配置版本控制系统支持 打开IDEA之后前往`Preferences/Settings -> Version Control -> Git`选项卡下修改默认的Git可执行文件路径指向系统已安装的那个副本(通常情况下无需改动)。另外还需确认全局用户名邮箱等基本信息已经正确填写完毕以便提交记录能反映出贡献者的真实身份信息[^4]。 #### 使用SSH URL克隆现有库 当一切准备就绪之时便可通过菜单栏里的`File -> New -> Project from Version Control...`选取对应协议类型的URL地址来进行下一步动作了。这里应当采用类似于`git@gitlab.com:username/repository.git`这样的形式作为源链接而非HTTPS开头那一串字符[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值