在AWS Ubuntu实例搭建远程Git仓库并从Windows推送的问题
在AWS Ubuntu实例搭建远程Git仓库并从Windows本地推送的完整指南
嘿,我之前在搭建AWS远程Git仓库的时候也踩过SSH代理的坑,结合你已经完成的步骤,下面给你梳理一套完整的操作流程,确保你能顺利把Windows本地的代码推上去:
一、先把SSH代理的问题彻底搞定(你已经走了大半)
你碰到的Could not open a connection to your authentication agent是因为SSH代理没启动起来,虽然eval $(ssh-agent)能临时解决,但不同终端环境有更稳妥的操作:
- 如果你用的是Git Bash:先执行
ssh-agent -s(这是Windows下启动代理的正确语法),再运行ssh-add path/to/myKP.pem,这样后续操作代理不会轻易失效 - 要是用PowerShell:得先启动系统的OpenSSH代理服务,执行
Start-Service ssh-agent,再添加密钥就不会报错了
二、在AWS Ubuntu实例上搭建远程Git仓库
你已经成功登录实例了,接下来按这些步骤来:
- 先安装Git(如果实例还没装的话):
sudo apt update && sudo apt install git -y - 创建专门的Git用户(别用root,更安全):
- 执行
sudo adduser git,跟着提示设置密码 - 切换到Git用户:
su - git
- 执行
- 初始化裸仓库(必须是裸仓库,不然没法接收推送):
mkdir my_project.git && cd my_project.git git init --bare - 配置SSH权限避免后续踩坑:
- 切回root用户,编辑
/etc/ssh/sshd_config文件,确保这两行是开启状态:PubkeyAuthentication yes PasswordAuthentication no # 如果你只用密钥登录的话,这个可以关闭密码登录更安全 - 重启SSH服务:
sudo systemctl restart sshd
- 切回root用户,编辑
三、Windows本地仓库配置&推送代码
- 确保本地已经有Git仓库:
- 如果是新项目,先在本地目录执行
git init,添加文件后执行git add . && git commit -m "initial commit"
- 如果是新项目,先在本地目录执行
- 添加远程仓库地址:
- 直接用IP的话,格式是:
git remote add origin git@<你的AWS实例公网IP>:~/my_project.git - 要是密钥不是默认的
id_rsa,建议配置SSH简化操作:
在Git Bash里创建~/.ssh/config文件,写入:
然后远程地址可以写成:Host aws-git-repo HostName <你的AWS实例公网IP> User git IdentityFile /c/Users/你的用户名/路径/myKP.pem # Windows路径要换成Git Bash的格式,比如C:\xxx换成/c/xxxgit remote add origin aws-git-repo:~/my_project.git
- 直接用IP的话,格式是:
- 推送代码:
- 第一次推送要指定分支关联:
git push -u origin main # 要是你的主分支是master就改成master
- 第一次推送要指定分支关联:
常见问题排查
- 如果推送时提示
Permission denied (publickey):- 检查Windows下的密钥是否在代理里:执行
ssh-add -l,如果看不到你的密钥,重新运行ssh-add path/to/myKP.pem - 检查Ubuntu的Git用户公钥:从本地的
myKP.pem生成公钥:ssh-keygen -y -f myKP.pem > myKP.pub,把公钥内容复制到Ubuntu的/home/git/.ssh/authorized_keys文件里,还要设置正确权限:chmod 700 /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys
- 检查Windows下的密钥是否在代理里:执行
内容的提问来源于stack exchange,提问作者DragonBorn
相关产品推荐
相关产品推荐

