我正在开发一个git基础架构测试目的。我试图测试的一件事是从AWS Ubuntu服务器克隆一个简单的git repo。是流动的类型
git clone ubuntu@numbers.us-west-2.compute.amazonaws.com:/srv/git/Test_Git.git
我得到以下回复
克隆到'Test_Git'...
许可被拒绝(公钥) 致命:无法从远程存储库中读取 请确保您拥有正确的访问权限 存储库存在。
答案 0 :(得分:2)
如错误所示,您的ssh访问权限已被拒绝。
一些可能的原因:
您以用户ubuntu
登录。验证这是您应该使用的用户名。
验证是否在远程用户上配置了用于登录的SSH密钥。它通常位于该用户的$HOME/.ssh/authorized_keys
文件中。
验证服务器SSH文件的权限是否正确。除所有者外,authorized_keys文件不得由任何人写入。对于导致该文件的路径中的每个目录也是如此。例如,这可能意味着您需要检查这些路径上的权限(这可能会因系统和您使用的用户而异)。
/
/home/
/home/ubuntu/
/home/ubuntu/.ssh/
/home/ubuntu/.ssh/authorized_keys
您登录的用户必须具有git存储库的读取权限才能克隆其副本。在这种情况下,路径是
/srv/git/Test_Git.git/
该路径及其下的所有内容必须是您以。[/ p>身份登录]的用户可读
理想情况下,该用户应拥有整个目录及其所有内容。因为当你(大概)想要将更改推回服务器时你会需要它。
如果以上都不能解决问题,假设您可以登录服务器,请检查系统日志中是否有SSH错误消息。
在Linux上查找SSH消息最常见的地方是
/var/log/messages
/var/log/secure
您也可以从客户端获取调试信息,但这只会向您显示客户端正在执行的操作。如果您想确定您尝试使用哪个密钥进行登录,那么您就可以找到它。
ssh -v ubuntu@numbers.us-west-2.compute.amazonaws.com