【问题标题】:Cannot clone a a git repo from private server无法从私人服务器克隆 git 存储库
【发布时间】:2017-03-29 21:30:46
【问题描述】:

我正在开发一个 git 基础设施测试目的。我要测试的一件事是从 AWS Ubuntu 服务器克隆一个裸 git 存储库。是流动的类型

git clone ubuntu@numbers.us-west-2.compute.amazonaws.com:/srv/git/Test_Git.git

我收到以下回复

正在克隆到“Test_Git”...
权限被拒绝(公钥)。
致命:无法从远程存储库中读取。
请确保您拥有正确的访问权限 并且存储库存在。

【问题讨论】:

    标签: git amazon-web-services ssh access-rights


    【解决方案1】:

    正如错误所说,您的 ssh 访问已被拒绝。

    一些可能的原因:

    用户名错误

    您正在以用户 ubuntu 的身份登录。验证这是您应该使用的用户名。

    错误的 SSH 密钥

    验证您用于登录的 SSH 密钥是否已在远程用户上配置。它通常在该用户的$HOME/.ssh/authorized_keys 文件中。

    authorized_keys 权限错误

    验证服务器 SSH 文件的权限是否正确。除所有者外,任何人都不能写入 authorized_keys 文件。通向该文件的路径中的每个目录也是如此。例如,这可能意味着您需要检查这些路径的权限(这可能因系统和您使用的用户而异)。

    /
    /home/
    /home/ubuntu/
    /home/ubuntu/.ssh/
    /home/ubuntu/.ssh/authorized_keys
    

    对 git 仓库没有读取权限

    您登录的用户必须对 git 存储库具有读取权限,才能让您克隆它的副本。在这种情况下,路径是

    /srv/git/Test_Git.git/
    

    该路径及其下的所有内容都必须可供您登录的用户读取。

    理想情况下,该用户应该拥有整个目录及其所有内容。因为稍后当您(可能)想要将更改推送回服务器时,您将需要它。

    查看日志

    如果以上方法都不能解决问题,假设您可以登录到您的服务器,请检查系统日志中是否有 SSH 错误消息。

    在 Linux 上查找 SSH 消息最常见的位置是

    • /var/log/messages
    • /var/log/secure

    使用 ssh 调试模式

    您还可以从客户端获取调试信息,但这只会显示客户端正在执行的操作。如果您想确定您尝试使用哪个密钥进行登录,您可以通过以下方式找到它。

    ssh -v ubuntu@numbers.us-west-2.compute.amazonaws.com
    

    【讨论】:

    • @FrancoPettigrosso 可能,但如果不了解有关您的服务器设置等的更多详细信息,则很难确定。我正在进行典型/平均设置。
    • 老实说,我不知道如何检查系统日志,也不知道我在寻找什么。我相信我有 ubuntu 的典型 aws 设置
    • @FrancoPettigrosso 我稍微更新了答案,最后还添加了几个日志路径尝试。
    • 我从未添加过 SSH 密钥。
    猜你喜欢
    • 2020-09-02
    • 2020-09-23
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2016-04-08
    • 2019-09-16
    • 2021-09-01
    • 2018-11-23
    相关资源
    最近更新 更多