拉取代码报错Cloning into ‘xxx‘ Permission denied (publickey).fatal: Could not read from remote repository.
报错信息:
Cloning into '项目名'...
git@codeup.aliyun.com: Permission denied (publickey).fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
报错界面:

分析:
在执行 Git 克隆(clone)仓库到front目录时遇到了报错,核心问题是SSH 密钥认证失败,导致 Git 无法访问远程仓库,一般出现在初进入项目组没有成功初始化或更换电脑设备SSH没有配置或配置文件被清除,或接下来我会一步步记录排查和解决这个问题的步骤:
排查步骤:
1、先确认 SSH 密钥密码是否输入正确
报错里的Enter passphrase for key是让输入SSH 密钥的加密密码(注意不是 Git 账号密码、服务器密码):
2、如果当初生成id_rsa时设置了密码,重新执行 clone 命令,仔细输入密码(输入时终端不会显示任何字符,包括星号,输完直接回车即可,这是 SSH 的安全设计);
3、如果当初生成密钥时没设置密码,直接按回车即可,不要输入任何内容。
4、如果密码确实忘记了就需要额外解决
若输入密码后还是提示fatal: Could not read from remote repository,先按上面说的ssh -T 服务器地址(如ssh -T git@gitee.com)测试连通性,大概率是公钥没配到远程 Git 服务器;
若忘记了 SSH 密钥的密码,最省事的办法是重新生成无密码的 SSH 密钥(覆盖原有文件),再把新公钥配到远程,命令如下:
ssh-keygen -t rsa -C "你的Git账号邮箱"
(一路回车,不设任何密码)

然后生成后复制新的id_rsa.pub公钥,重新添加到 Git 服务器的 SSH 公钥设置里就可以了
2、验证 SSH 密钥是否能正常连接远程 Git 服务器
ssh -T命令测试连通性
如果密码输入正确但仍报错/或者无密码模式进入访问服务器拉取还是报错,说明密钥本身无法被远程服务器识别,先通过ssh -T命令测试连通性:
ssh -T git@github.com

我这里就有问题,报错 Permission denied (publickey)了:没有Welcome
输入:
cat /c/Users/Administrator/.ssh/id_rsa.pub

执行这个命令,终端会输出公钥完整内容(以ssh-rsa开头,可以看得到 我这里是以个人 outlook 邮箱结尾),全选复制所有字符(不要漏、不要多空格,复制到剪贴板)
账号后台添加公钥
(我这里使用的是阿里云,所以记录一下将公钥添加到「阿里云 Codeup」账号后台的关键步骤)
阿里云 Codeup 的公钥添加入口和其他平台不同,步骤操作如下:

- 打开阿里云 Codeup 官网:https://codeup.aliyun.com/,用有权限访问
front仓库的账号登录(必须是仓库的开发者 / 所有者账号,否则即使加了公钥也没权限); - 登录后,点击页面右上角的头像,在下拉菜单中选择「个人设置」;
- 在左侧菜单栏找到「SSH 公钥」(在「安全设置」分类下,很好找);
- 进入 SSH 公钥页面后,点击「添加公钥」按钮;
- 填写两个关键信息:
- 公钥名称:自定义即可(如
xxx-开发机、舰载机,方便后续识别); - 公钥内容:粘贴第一步复制的完整公钥字符(直接粘贴,不要手动修改);
- 公钥名称:自定义即可(如
- 点击「确定」,公钥就添加成功了(Codeup 会自动验证公钥格式,格式正确才会保存)
再测试
ssh -T git@codeup.aliyun.com
就有了Welcome,表示与远程仓库连接成功!

代码拉取成功:







