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

Posted

技术标签:

【中文标题】无法从我的本地 ubuntu 机器推送到 aws ec2【英文标题】:Cannot push to aws ec2 from my local ubuntu machine 【发布时间】:2019-03-28 06:17:55 【问题描述】:

我尝试使用 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】:

myserver 在行中的解析:

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

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

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

(如果您不想每次停止实例时都更新配置,请在实例上设置弹性 IP)

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

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

groupadd mygitgroup

然后在这个组中添加用户ubuntu

usermod -aG mygitgroup ubuntu 

在组的 git reposity 上设置正确的权限:

chgrp -R mygitgroup /my/git/path

移除无效权限

chmod 770 /my/git/path

【讨论】:

您好,我还尝试执行以下操作: git remote add origin ssh://ubuntu@serverpublicdns.com/home/.../path/to/myrepo.git 它给出了相同的错误 !! @MB81 git repo 存储在 /home/ubuntu 中?如果它在另一个用户文件夹中,则可能是一个基本的正确问题? 其实是服务器权限问题,我把myrepo.git的权限改成777后一切正常。什么是更好的做法?? 谢谢@MB81 这就是我要找的东西!

以上是关于无法从我的本地 ubuntu 机器推送到 aws ec2的主要内容,如果未能解决你的问题,请参考以下文章

无法将我的代码推送到 AWS EB

AWS:无法从我的机器连接到 RDS 数据库

无法推送到我的 github 私有存储库

将 docker 容器从本地推送到 aws ecr

collectstatic 不推送到文件 S3

Django 在服务器上找不到静态文件,但在本地机器上工作正常