无法从我的本地 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
我尝试使用 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