无法从我的本地 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的主要内容,如果未能解决你的问题,请参考以下文章