无法从我的本地ubuntu机器推送到AWS EC2

时间:2018-10-23 22:34:59

标签: git amazon-web-services ubuntu amazon-ec2 git-bare

我尝试使用git推送到AWS ec2实例,但是我总是会收到此错误:

error: pack-objects died of signal 13
error: failed to push some refs to ssh://ubuntu@..../..../myrepo.git

我做了什么:

1-在我的ec2服务器(ubuntu 18.04)上创建一个git裸存储库

mkdir myrepo.git
cd myrepo.git
git init --bare

2-在我的本地计算机(ubuntu 16.04)中:

a-在〜/ .ssh /

中添加myserverkey.pem b-将以下内容添加到.ssh / config

Host myserver
Hostname myserverpublicdns
User ubuntu
IdentityFile ~/.ssh/myserverkey.pem

c-在我的项目目录中,我执行了以下操作:

git init
git remote add origin myserver:/~/path/to/myrepo.git
git add .
git commit -m 'test commit'
git push origin master

我也尝试过

git remote add origin ssh://ubuntu@myserverpublicdns/home/../path/to/myrepo.git

当我推送到服务器时会给出相同的错误

错误是:

Counting objects: 547, done.
Delta compression using up to 4 threads.
Compressing objects : 100% (530/530), done.
error: pack-objects died of signal 13
error: failed to push some refs to ssh://ubuntu@..../..../myrepo.git

我找不到我的案子的任何解决方法

请注意,我的项目大小只有4.5mb,我可以使用以下方式连接到服务器:

ssh myserver

这意味着.ssh / config文件中没有错误

那是什么问题?我在做什么错??

谢谢!

1 个答案:

答案 0 :(得分:1)

以下行中myserver的分辨率:

git remote add origin myserver:/~/path/to/myrepo.git

可能不起作用,因为“ myserver”必须由您的/ etc / hosts文件解析,否则git找不到您的服务器。

您的ssh命令起作用是因为您的ssh配置文件确实在myserver和实例的主机名之间建立了链接。

(如果您不想在每次停止实例时都更新配置,请在实例上设置一个Elastic-ip)

您还应该查看文件夹权限,您正在与ubuntu用户连接,请确保它在git存储库路径上具​​有正确的权限。

请勿在文件夹上直接设置777,永远不要。而是创建一个组:

groupadd mygitgroup

然后将用户ubuntu添加到该组中

usermod -aG mygitgroup ubuntu 

在git存储库上为该组设置正确的权限:

chgrp -R mygitgroup /my/git/path

删除无效权利

chmod 770 /my/git/path