SSH密钥连接GITLAB操作 连接失败的原因是什么怎么快速定位 SSH 连接失败原因的完整指南
先讲解怎么我的经历 我按照ai给的方法配置ssh密钥并试图拉取公司服务器上的代码工程结果不管怎么常识都会出现一直因为ssh不通过而被拒绝 不怎么小心空格换行都没有用结果一查发现其实是我的环境变量的HOME写的是D:\的一个目录导致SSH他一直以为我的密钥是在那个目录的.ssh文件夹下其实我的ssh密钥默认在C:\USER\当前电脑用户名\.ssh下用户主目录(HOME环境变量)被设置成了,导致 S
先讲解怎么我的经历 我按照ai给的方法配置ssh密钥并试图拉取公司服务器上的代码工程结果不管怎么常识都会出现一直因为ssh不通过而被拒绝 不怎么小心空格换行都没有用
结果一查发现其实是我的环境变量的HOME写的是D:\的一个目录导致SSH他一直以为我的密钥是在那个目录的.ssh文件夹下其实我的ssh密钥默认在C:\USER\当前电脑用户名\.ssh下
用户主目录(
HOME环境变量)被设置成了D:\Cadence\SPB_Data,导致 SSH 默认从D:\Cadence\SPB_Data\.ssh\读取密钥。
但你之前生成的密钥(包括那个ssh-rsa公钥)很可能保存在标准的 Windows 用户目录C:\Users\15009\.ssh\下。
在 Windows 上,HOME默认通常指向C:\Users\<用户名>
解决办法直接把HOME改成C:\Users\15009\就行
我最想记录的是解决这个办法的方法因为如果早知道这个寻找ssh的过程就不会卡那么久,这个方法就是:
ssh -vT git@192.168.0.201 (ssh连接时增加一个-vT变量)
这样就呢个输出链接的详细过程你直接丢给ai就知道详细错误
接下来是我记录的ssh配置与使用技巧
开启gitlab连接:
你可以安装完git后在某个文件位置右键点击open git bash here
也可以打开终端输入ssh -vT git@git网端ip地址
eg:ssh -vT git@192.168.0.201
假设我们要访问:
步骤:网页上添加 SSH 公钥(Add SSH key)
-
打开浏览器,登录 GitLab 地址:http://192.168.0.201:2020 用你的账号登录(用户名 LINZIYING 或其他)。
-
进入个人设置
- 右上角点击你的头像(或用户名)
- 选择 Preferences(偏好设置) (页面截图里右上角有 “Preferences”)
-
进入 SSH Keys 页面
- 左侧菜单栏找到 SSH Keys(或直接点左边 “SSH Keys”)
- 点击进入 SSH Keys 管理页面。
-
生成 SSH 公钥(如果电脑上还没有)
- 打开命令提示符(cmd):
ssh-keygen -t ed25519 -C "your_email@company.com"- 回车三次(默认路径 C:\Users\15009.ssh\id_ed25519,密码可空)。
- 查看公钥内容:
type C:\Users\15009\.ssh\id_ed25519.pub- 复制全部内容(从 ssh-ed25519 开头到结尾邮箱那行)。
(如果已生成过,直接跳到下一步)
- 打开命令提示符(cmd):
-
在 GitLab 添加公钥
- 在 SSH Keys 页面:
- Title:随便填(比如 “My Windows PC”)
- Key:粘贴刚才复制的公钥内容(完整一行)。
- Expires at:可选(留空或设1年)。
- 点击 Add key(添加密钥)按钮。
- 添加成功后,页面会显示你的 key 列表。
- 在 SSH Keys 页面:
-
测试 SSH 连接 新开 cmd:
ssh -T git@192.168.0.201- 第一次会问 “Are you sure you want to continue connecting (yes/no)?” → 输入 yes
- 成功输出类似:
Welcome to GitLab, @LINZIYING!
如果提示端口错误(Connection refused),说明 SSH 端口不是默认 22:
- 去 GitLab 页面右上角 Clone 按钮,看 SSH 地址(通常是 ssh://git@192.168.0.201:端口/...)
- 改测试命令:
ssh -T -p 2222 git@192.168.0.201 # 假设端口 2222
步骤:克隆仓库(添加 key 成功后)
用 SSH 地址克隆(页面右上角 Clone → Clone with SSH):
cd C:\Users\15009\Desktop
git clone git@192.168.0.201:marionette/motorhub.git
- 如果端口不是 22(比如 2222):
git clone ssh://git@192.168.0.201:2222/marionette/motorhub.git
克隆成功后:
cd motorhub
git submodule update --init --recursive更多推荐


所有评论(0)