SSH through proxy to visit ssh.github.com (ZZ)

本文介绍了一种在互联网访问受限,仅允许通过特定代理服务器(开放80和443端口)的情况下,如何配置SSH连接以使用GitHub的方法。具体步骤包括为SSH添加代理设置,并将连接目标从github.com(22端口)更改为ssh.github.com(443端口)。此外还提供了相关工具Corkscrew的链接。
<p>Scenario:</p>
<p>- All access to the internet is restricted to a proxy</p>
<p>- The proxy only allows connections out on port 80 and 443</p>
<p>?</p>
<p>Solution:</p>
<p>1. Add proxy for ssh</p>
<p>2. Connect to ssh.github.com (443) instead of github.com (22)</p>
<p>?</p>
<p>Origin Post:</p>
<p>
</p>
<h2 style="font-size: 25px; font-family: helvetica, arial, freesans, clean, sans-serif; padding: 0px; margin: 0px;"><a style="font-size: 15px; font-weight: normal; color: #4183c4; text-decoration: none; padding: 0px; margin: 0px;" title="Using GitHub Through Draconian Proxies" href="http://returnbooleantrue.blogspot.com/2009/06/using-github-through-draconian-proxies.html" target="_blank">Using GitHub Through Draconian Proxies</a></h2>

<p>?</p>
<p>Reference:</p>
<p><a title="Corkscrew" href="http://www.agroman.net/corkscrew/" target="_blank">Corkscrew</a></p>
<think>我们正在解决在Git Bash中执行`ssh -T git@github.com`连接GitHub时出现的各种问题(如连接超时、端口拒绝等)。根据引用内容,核心解决方案是修改SSH配置以使用443端口(HTTPS端口)进行SSH连接。 步骤: 1. 在用户目录下的.ssh文件夹中创建或修改config文件。 2. 添加配置内容,指定HostName为ssh.github.com,端口为443。 3. 测试连接,并根据提示确认主机密钥(输入yes)。 同时,如果遇到密钥问题,可能需要生成新的密钥并添加到GitHub账户。 接下来,我们按照步骤详细说明。 </think>### 解决 `ssh -T git@github.com` 连接问题的完整指南 #### 步骤1:诊断根本原因 执行命令后可能出现以下情况: 1. **超时/拒绝连接** ```bash ssh: connect to host github.com port 22: Connection timed out ``` *原因:防火墙/ISP 封锁22端口[^1][^2]* 2. **密钥验证失败** ```bash Permission denied (publickey) ``` *原因:公钥未绑定GitHub账户或密钥错误[^3]* 3. **主机验证失败** ```bash Host key verification failed ``` *原因:首次连接需确认主机指纹[^4]* --- #### 步骤2:通用解决方案(推荐) **修改SSH配置使用443端口** 1. 在Git Bash中创建配置文件: ```bash vim ~/.ssh/config ``` 2. 插入以下内容并保存(按`i`输入→ 粘贴内容 → `Esc` → `:wq`): ```bash Host github.com Hostname ssh.github.com # 核心修改 User git Port 443 IdentityFile ~/.ssh/id_rsa # 你的私钥路径 ``` *此配置强制SSH通过HTTPS端口连接[^1][^2]* 3. 重新测试: ```bash ssh -T git@github.com ``` --- #### 步骤3:特殊情况处理 **场景1:首次连接需确认主机密钥** 出现提示时输入 `yes`: ```bash The authenticity of host '...' can't be established. Are you sure you want to continue? (yes/no) yes ``` **场景2:密钥验证失败** 重新生成密钥并绑定GitHub: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" # 生成新密钥 eval "$(ssh-agent -s)" # 启动代理 ssh-add ~/.ssh/id_ed25519 # 添加密钥 ``` 复制公钥到GitHub: ```bash cat ~/.ssh/id_ed25519.pub | clip.exe # 复制到剪贴板 ``` → 登录GitHub → Settings → SSH Keys → 添加公钥[^3] --- #### 步骤4:验证连接成功 成功响应包含用户名: ```bash Hi username! You've successfully authenticated... ``` #### 连接问题诊断流程图 ```mermaid graph TD A[执行 ssh -T git@github.com] --> B{是否成功?} B -->|是| C[连接正常] B -->|否| D[检查错误类型] D -->|超时/拒绝| E[修改SSH配置使用443端口] D -->|密钥错误| F[重新生成密钥并绑定GitHub] D -->|主机验证| G[输入 yes 确认] E & F & G --> H[重新测试连接] H -->|仍失败| I[检查防火墙/代理设置] ``` > **注意**:企业网络可能需要配置代理: > ```bash > export https_proxy=http://proxy-ip:port > export http_proxy=http://proxy-ip:port > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值