如何将commit改动push到AWS远程服务器实例?按对应教程操作未生效
Git推送至AWS EC2故障排查方案
- 检查本地pem密钥文件权限,SSH默认会拒绝权限过高的密钥,执行命令修改权限:
chmod 400 /path/to/your/secret.pem - 验证本地git远端配置是否正确,执行
git remote -v查看远端地址,标准格式为ssh://<EC2登录用户名>@<EC2公网IP>/<EC2端裸仓库绝对路径>,其中Amazon Linux系统默认用户名为ec2-user,Ubuntu系统默认用户名为ubuntu - 先跳过git直接测试SSH连通性,执行
ssh -i /path/to/your/secret.pem <EC2登录用户名>@<EC2公网IP>,如果无法连接优先排查EC2安全组入站规则是否开放22端口,且允许你的本地IP访问 - 登录EC2实例检查远端仓库配置:确认仓库是通过
git init --bare <仓库名>.git命令初始化的裸仓库,普通工作仓库无法直接作为推送远端 - 检查EC2端仓库目录权限,确认你SSH登录的用户对仓库目录有读写权限,可执行
sudo chown -R <EC2登录用户名>:<EC2登录用户组> <裸仓库父目录>修正权限 - 如果你配置了post-receive钩子实现自动部署,确认钩子文件有可执行权限,执行
chmod +x <裸仓库路径>/hooks/post-receive,同时检查钩子内写的工作目录路径是否正确,对应目录是否开放了写入权限
可选优化配置
如果需要避免每次推送都指定密钥路径,可在本地~/.ssh/config文件中添加如下配置:
Host ec2-git HostName <你的EC2公网IP> User <EC2登录用户名> IdentityFile /path/to/your/secret.pem IdentitiesOnly yes
配置完成后可将git远端地址修改为ec2-git:<裸仓库绝对路径>,后续推送无需额外指定密钥参数。
内容的提问来源于stack exchange,提问作者zin-minhtun
相关产品推荐
相关产品推荐

