如何强制Git在SSH连接远程仓库时使用指定端口?
解决Git推送时默认使用22端口的问题
你的问题出在远程仓库URL的格式错误,Git无法识别你写在my-project.com后面的:7822端口,所以依然默认使用SSH的22端口尝试连接,导致被拒绝。下面是两种可行的解决方案:
方案一:修改远程仓库URL为标准SSH格式
Git支持带端口的SSH URL格式,需要用ssh://协议头来明确指定端口。执行以下命令更新你的production远程分支:
git remote set-url production ssh://rails@my-project.com:7822/home/rails/myproject
这个格式中,7822会被Git正确识别为SSH连接端口,而不是路径的一部分。
方案二:通过Git配置指定主机端口
如果你更习惯原来的scp风格URL(rails@my-project.com:/home/rails/myproject),可以在本地Git配置中为my-project.com指定默认端口:
- 打开本地仓库的
.git/config文件,添加以下配置段:
[host my-project.com] user = rails port = 7822
- 或者直接用命令行完成配置:
git config --add host.my-project.com.port 7822 git config --add host.my-project.com.user rails
配置完成后,Git在连接my-project.com时会自动使用7822端口,无需修改原URL。
验证配置
执行以下命令查看远程仓库配置是否正确:
git remote -v
之后再尝试推送:
git push production master
内容的提问来源于stack exchange,提问作者satish
相关产品推荐
相关产品推荐

