我无法从工作github帐户仓库克隆。我已经完成了生成ssh密钥对并将公钥上传到我的工作github帐户的步骤。我看到一个详细的日志克隆GIT_SSH_COMMAND="ssh -vvv" git clone git@github.com:<workAccount>/repo.git
,使用公钥验证成功。因此,我认为这不是一个ssh auth问题。
但是,当我运行ssh -T git@github.com
时,它会显示:
Hi AlexanderBollbach! You've successfully authenticated, but GitHub does not provide shell access.
现在AlexanderBollbach
是我个人github帐户的名称,而不是我的工作github帐户。所以我可能会收到此错误'Could not read from remote repository.'
,因为我的个人github帐户没有读取我的工作github帐户的权限。
因此,我的问题是,如何将此ssh克隆过程与正确的github帐户相关联?在阅读中我已经使用了ssh,我还没有理解ssh如何与一个github帐户相关联的概念。我非常感谢不只是修复,而是正确理解在这种情况下如何成功使用私钥/公钥是不足以克隆回购。
答案 0 :(得分:1)
“我仍然对ssh -T git@github.com
如何打印我的个人github用户帐户名”感到困惑:“
简单:如果您的公共帐户中注册了默认公钥~/.ssh/id_rsa.pub
,则该帐户将显示在ssh -Tv git@github.com
中。
如果您想管理多个帐户(特别是在推送时需要明确的身份验证和目标仓库的所有权),您需要一个~/.ssh/config
文件,seen here。
#Personal GitHub
Host persgh
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_perso
#Personal Work
Host workgh
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
然后,要成功克隆您的私人仓库:
git clone workgh:<workAccount>/<workRepo>
答案 1 :(得分:0)
来自Tombart的解决方案:
确保~/.git/config
中有正确的网址:
url = git@github.com:<workAccount>/repo.git
如果是您的第一次推送,您需要设置正确的上游
$ git push -u origin master
您可以通过以下方式检查使用的密钥:
$ ssh -vvv git@github.com
这应该有用。