已连通Github SSH但在Digital Ocean Droplet克隆仓库失败求助
解决Digital Ocean Droplet克隆GitHub仓库权限被拒的问题
以下是针对你遇到的问题的排查和解决步骤:
确认仓库访问权限与地址正确性
虽然SSH认证成功,但私有仓库需要你的GitHub账号拥有访问权限:- 检查克隆命令中的仓库地址,确保用户名、仓库名拼写和大小写完全正确(GitHub对仓库名大小写敏感),比如
git clone git@github.com:YourUsername/your-laravel-repo.git。 - 登录GitHub网页端,确认你是该仓库的所有者、合作者,或者所属组织已赋予你访问权限。
- 检查克隆命令中的仓库地址,确保用户名、仓库名拼写和大小写完全正确(GitHub对仓库名大小写敏感),比如
确保Git使用正确的SSH密钥
Droplet上可能存在多个SSH密钥,导致Git未使用与GitHub绑定的那一个:- 在Droplet上执行
ls -la ~/.ssh/,查看所有密钥文件(如id_rsa、id_ed25519)。 - 执行
ssh-add -l,验证目标密钥已被添加到SSH代理中。如果未列出,执行ssh-add ~/.ssh/你的密钥文件名添加。 - 创建或修改
~/.ssh/config文件,强制GitHub使用指定密钥:
保存后重新尝试克隆。Host github.com HostName github.com User git IdentityFile ~/.ssh/你的密钥文件名 IdentitiesOnly yes
- 在Droplet上执行
修正SSH文件与目录权限
错误的权限会导致SSH认证失败:- 执行以下命令设置正确权限:
chmod 700 ~/.ssh/ chmod 600 ~/.ssh/你的密钥文件 chmod 644 ~/.ssh/authorized_keys # 若存在该文件 - 确保
.ssh目录及文件属于当前操作用户(而非root),执行chown -R your-username:your-username ~/.ssh/修改(替换your-username为你的实际用户名)。
- 执行以下命令设置正确权限:
直接指定密钥测试仓库访问
执行ssh -i ~/.ssh/你的密钥文件名 git@github.com,验证能否正常认证。如果返回Hi [你的名字]! You've successfully authenticated...,则说明密钥有效,此时再执行克隆命令即可。
内容的提问来源于stack exchange,提问作者Stef Verniers
相关产品推荐
相关产品推荐

