Linux机器Git仓库克隆权限拒绝问题求助
我之前也碰到过一模一样的场景,结合Oracle ALM平台的特性,给你整理几个实用的排查和解决步骤:
检查公钥是否完整复制
你提供的公钥末尾是email@gmail.co,看起来少了最后一个m(应该是email@gmail.com),大概率是复制的时候截断了。一定要确保公钥从ssh-rsa开头到邮箱结尾的所有字符都完整复制到ALM平台的公钥配置里,不要有多余的空格、换行或者遗漏字符。验证SSH连接是否正常
先绕开Git,直接测试SSH连接是否能成功:ssh -T -p 2222 xxxxx@alm.oraclecorp.com如果还是返回
Permission denied,说明问题出在SSH层面,和Git无关,继续往下排查。确保私钥权限正确
Linux系统对SSH密钥文件的权限要求很严格,私钥必须是仅当前用户可读,否则会被SSH拒绝使用:chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub检查SSH代理是否加载了私钥
如果你的私钥没有被SSH代理加载,连接时也会失败。先查看已加载的密钥:ssh-add -l如果看不到你生成的密钥,先启动代理再加载:
eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa确认公钥的配置位置
有些平台的公钥是添加到用户个人账户设置里,而不是仓库的权限设置中。去ALM平台的个人资料页面,检查你添加的公钥是否在用户级别的配置里,而不是仅绑定到某个仓库(如果平台支持仓库级公钥的话)。指定自定义私钥路径(如果需要)
如果你生成密钥时用了非默认路径(比如不是~/.ssh/id_rsa),克隆时需要指定私钥:GIT_SSH_COMMAND="ssh -i /path/to/your/private_key" git clone ssh://xxxxx@alm.oraclecorp.com:2222/epm_pbcs_15318/pbcs.git或者更方便的是在
~/.ssh/config里添加配置:Host alm.oraclecorp.com User xxxxx Port 2222 IdentityFile /path/to/your/private_key之后直接用
git clone ssh://alm.oraclecorp.com/epm_pbcs_15318/pbcs.git就能自动匹配密钥了。检查ALM平台的公钥状态
登录ALM平台,确认你添加的公钥没有被禁用、过期,并且关联的用户账户有该仓库的克隆权限。
内容的提问来源于stack exchange,提问作者jon

