preface

在GitHub中配置过自己的SSH私钥后,就可以使用自己的公钥通过SSH协议进行git pullgit push等操作了。此时git所有的操作都是通过22端口收发的,在某些情况下,无法使用22端口时,应该怎么通过SSH访问Github?

使用443端口

一个可行的方案是使用443端口。443端口是HTTPS服务专用的端口,但也可以被SSH临时占用。在确定当前环境可以访问公网的情况下,可以使用如下命令测试443端口:

$ ssh -v -T [email protected] -p 443

如果在输出中看到如下内容,即证明443端口可以访问:

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

这个时候,就可以在自己的SSH配置文件[1]中添加相关的配置,使每次访问Github时自动使用443端口:

# ~/.ssh/config
Host github.com
Hostname ssh.github.com
User git
Port 443

  1. 参考:SSH config file syntax ↩︎