You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu中使用GitHub SSH密钥报错的解决方法

Ubuntu系统中SSH密钥无法用于Git克隆的排查与解决

问题概述

本地磁盘的SSH密钥可正常使用,但复制到Ubuntu系统的~/.ssh目录后,执行SSH方式的git clone操作时失败,报错提示公钥认证被拒绝。

相关截图

  • 本地磁盘SSH密钥:本地磁盘SSH密钥
  • Ubuntu下的SSH目录:Ubuntu下的SSH目录
  • Ubuntu SSH连接失败报错:Ubuntu SSH连接失败

排查与解决步骤

1. 修正密钥文件及目录权限

SSH对密钥文件权限有严格限制,权限过宽会被系统拒绝使用。执行以下命令调整权限:

# 设置.ssh目录为仅所有者可访问
chmod 700 ~/.ssh
# 设置私钥为仅所有者可读可写
chmod 600 ~/.ssh/id_rsa
# 设置公钥为所有者读写、其他用户只读
chmod 644 ~/.ssh/id_rsa.pub

2. 加载密钥到SSH代理

如果密钥设置了密码,需将其加载到SSH代理中,避免重复输入密码:

# 启动SSH代理
eval "$(ssh-agent -s)"
# 将私钥添加到代理
ssh-add ~/.ssh/id_rsa

执行ssh-add时输入密钥密码即可完成加载。

3. 验证SSH连接有效性

测试与Git服务器的SSH连接(以GitHub为例,替换为你的Git服务器域名):

ssh -T git@github.com

若返回类似Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.的内容,说明认证正常,此时再执行git clone即可。

4. 确认Git远程仓库地址

检查当前Git仓库的远程地址是否为SSH格式:

git remote -v

如果显示为HTTPS地址,可通过以下命令修改为SSH地址:

git remote set-url origin git@[服务器域名]:[用户名]/[仓库名].git

内容的提问来源于stack exchange,提问作者nicoiscoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:01:05