[已解决]Git无法连接远程

如果你是开了代理的情况下,Git失效了可以参考我的解决方法

今天Git忽然抽风了,显示连接失败

正在获取 origin
kex_exchange_identification: Connection closed by remote host
Connection closed by 20.205.243.166 port 22
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。
error: 不能获取 origin

众所周知Git一般不抽风,抽了风就比较麻烦,大概率是网络问题但不太好定位,一番搜索之后在Github官网找到了解决方案
原文在这,因为官方暂时还没有提供中文文档,这里先记录一下
原因我没有看懂,不过解决方案大致就是换了一个域名连接

解决方案

首先测试一下你的Git是否能正常访问ssh.github.com

ssh -T -p 443 git@ssh.github.com

第一次连接可能会收到一段警告,指出在 known_hosts 中找不到该host,或者它是由另一个名称找到的,这里yes通过就好
之后如果显示下面信息,就说明你已经连接成功了

Hi aftermath0703! You've successfully authenticated, but GitHub does not provide shell access.

之后你就可以更改你的配置了

sudo vim ~/.ssh/config

加入以下信息

 Host github.com
 Hostname ssh.github.com
 Port 443
 User git

之后你就可以测试Git是否能成功连接了

$ ssh -T git@github.com
Hi aftermath0703! You've successfully authenticated, but GitHub does not provide shell access.
<think>好的,用户想了解如何通过Git连接到远程仓库,特别是配置和连接的步骤。我需要根据提供的引用内容来组织回答。首先,用户可能对Git的基本操作不太熟悉,所以需要分步骤说明,确保清晰易懂。 首先,引用里提到了HTTPS和SSH两种方式。HTTPS比较简单,但每次需要输入账号密码,而SSH通过密钥验证更方便。需要详细说明这两种方法的步骤。例如,创建仓库后复制URL,然后添加远程仓库地址。这部分引用1和引用2都提到了HTTPS的步骤,而引用3详细讲了SSH公钥的配置。 接下来,生成SSH密钥对是关键步骤,用户可能需要指导如何生成并添加公钥到远程仓库。这里要确保用户能正确执行命令行操作,比如ssh-keygen命令,以及复制公钥到Gitee或GitHub的设置中。 然后,测试连接是否成功,这部分可以增加用户的信心,确保他们操作正确。最后,推送本地代码到远程仓库是实际应用,需要给出具体的git命令,如git push。 用户可能遇到的问题包括公钥生成失败、权限错误或远程仓库地址错误,所以常见问题解答也是有必要的。需要简明扼要地列出解决方案,帮助用户自行排查。 还要注意格式要求,比如行内数学表达式用$...$,但这里可能用不上。确保回答结构清晰,步骤分点,代码块用正确的格式。最后生成相关问题,帮助用户深入理解。</think>### 如何通过Git配置和连接远程仓库? #### 一、准备工作 1. **安装Git** 确保本地已安装Git工具([官网下载](https://git-scm.com/))。 2. **创建远程仓库** 在GitHubGitee等平台新建一个仓库,获取仓库地址(HTTPS或SSH格式)。 --- #### 二、配置本地仓库远程连接 ##### 方法1:HTTPS方式(适合初学者) 1. **初始化本地仓库** ```bash git init ``` 2. **关联远程仓库** 使用复制的HTTPS地址关联远程仓库: ```bash git remote add origin https://gitee.com/yourname/repo.git # 示例地址[^2] ``` 3. **验证连接** 推送代码测试: ```bash git push -u origin master # 首次推送需输入账号密码 ``` ##### 方法2:SSH方式(免密推送,推荐) 1. **生成SSH密钥对** 在命令行执行: ```bash ssh-keygen -t rsa -C "your@email.com" # 按回车使用默认路径[^3] ``` 2. **添加公钥到远程平台** - 查看公钥并复制: ```bash cat ~/.ssh/id_rsa.pub # 输出以ssh-rsa开头的内容 ``` - 粘贴到GitHub/Gitee的 **SSH公钥设置** 页面。 3. **关联SSH仓库地址** ```bash git remote add origin git@gitee.com:yourname/repo.git # SSH格式地址 ``` 4. **测试SSH连接** ```bash ssh -T git@gitee.com # 显示"successfully authenticated"即成功[^3] ``` --- #### 三、推送本地代码到远程仓库 ```bash git add . # 添加所有文件到暂存区 git commit -m "首次提交" # 提交到本地仓库 git push origin master # 推送代码到远程仓库 ``` --- #### 常见问题 - **权限错误**:检查SSH公钥是否配置正确,或切换为HTTPS方式。 - **地址错误**:通过 `git remote -v` 查看当前关联地址,用 `git remote set-url origin 新地址` 修改。 - **首次推送冲突**:先执行 `git pull origin master --allow-unrelated-histories` 合并历史记录。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值