无法从我的本地 ubuntu 机器推送到 aws ec2

Cannot push to aws ec2 from my local ubuntu machine

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

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

我做了什么:

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

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 文件中没有错误

所以问题是什么??我做错了什么??

提前致谢!!

我的服务器在行中的分辨率:

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

可能无法工作,因为 "myserver" 必须由您的 /etc/hosts 文件解析,否则 git 将找不到您的服务器。

您的 ssh 命令有效,因为您的 ssh 配置文件确实在 myserver 和实例的主机名之间创建 link。

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

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

不要在文件夹上设置 777 权限,永远不要。而是创建一个组:

groupadd mygitgroup

然后将用户 ubuntu 添加到该组

usermod -aG mygitgroup ubuntu 

将 git 存储库的正确权限设置为群组:

chgrp -R mygitgroup /my/git/path

删除无效权限

chmod 770 /my/git/path