无法从私人服务器克隆 git 存储库
Cannot clone a a git repo from private server
我正在开发 git 基础设施测试目的。我要测试的其中一件事是从 AWS Ubuntu 服务器克隆一个裸 git 存储库。正在输入流
git clone ubuntu@numbers.us-west-2.compute.amazonaws.com:/srv/git/Test_Git.git
我收到以下回复
Cloning into 'Test_Git'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如错误所述,您的 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/
该路径及其下的所有内容必须可供您登录的用户读取。
理想情况下,该用户应该拥有整个目录及其所有内容。因为稍后当您(大概)想要将更改推送回服务器时将需要它。
查看日志
如果上述 none 解决了问题,假设您可以登录到您的服务器,请检查系统日志以获取 SSH 错误消息。
在 Linux 上找到 SSH 消息的最常见位置是
/var/log/messages
/var/log/secure
使用 ssh 调试模式
您还可以从客户端获取调试信息,尽管这只会向您显示客户端正在执行的操作。如果您想确定您尝试使用哪个密钥进行登录,您可以通过以下方式找到它。
ssh -v ubuntu@numbers.us-west-2.compute.amazonaws.com
我正在开发 git 基础设施测试目的。我要测试的其中一件事是从 AWS Ubuntu 服务器克隆一个裸 git 存储库。正在输入流
git clone ubuntu@numbers.us-west-2.compute.amazonaws.com:/srv/git/Test_Git.git
我收到以下回复
Cloning into 'Test_Git'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
如错误所述,您的 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/
该路径及其下的所有内容必须可供您登录的用户读取。
理想情况下,该用户应该拥有整个目录及其所有内容。因为稍后当您(大概)想要将更改推送回服务器时将需要它。
查看日志
如果上述 none 解决了问题,假设您可以登录到您的服务器,请检查系统日志以获取 SSH 错误消息。
在 Linux 上找到 SSH 消息的最常见位置是
/var/log/messages
/var/log/secure
使用 ssh 调试模式
您还可以从客户端获取调试信息,尽管这只会向您显示客户端正在执行的操作。如果您想确定您尝试使用哪个密钥进行登录,您可以通过以下方式找到它。
ssh -v ubuntu@numbers.us-west-2.compute.amazonaws.com