使用Ansistrano部署私有GitHub仓库时出错,求解决方法
解决私有GitHub仓库部署服务器权限问题的步骤
1. 验证服务器上的私钥配置
- 登录服务器,检查
~/.ssh目录下的私钥文件(通常为id_rsa)是否存在,且权限设置为600(权限过宽会被SSH拒绝):ls -l ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - 确认私钥对应的公钥已完整添加到GitHub账号的SSH密钥列表中,注意不要有多余空格、换行或格式错误。
2. 测试SSH与GitHub的连通性
在服务器上执行以下命令验证权限:
ssh -T git@github.com
- 返回
Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.说明权限正常; - 若提示
Permission denied (publickey),先确保私钥被ssh-agent加载:eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa - 若提示主机密钥验证失败,清理旧的GitHub主机记录:
ssh-keygen -R github.com
3. 检查部署使用的仓库地址
确保部署脚本/命令中使用的是SSH格式的仓库地址(git@github.com:用户名/仓库名.git),而非HTTPS地址——HTTPS模式会触发密码验证,私有仓库场景下容易因凭证问题失败。
4. 确认服务器用户的SSH目录权限
如果用非root用户部署,保证该用户的~/.ssh目录权限为700,目录内所有文件权限为600:
chmod 700 ~/.ssh chmod 600 ~/.ssh/*
5. 排查GitHub端SSH密钥有效性
- 登录GitHub账号,进入
Settings > SSH and GPG keys,检查对应公钥是否未过期、未被删除; - 确认该公钥确实是服务器生成的那对,不要混淆本地与服务器的密钥对。
内容的提问来源于stack exchange,提问作者Robokop
相关产品推荐
相关产品推荐

