Sunforger

Sunforger

ssh直连github时config文件的配置

走 ssh 协议连接 github 时通常需要配置 ssh 的 config 文件。

一般来说配置文件有以下几个字段

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_rsa

Host 主机配置的标识符。
HostName:主机的地址或域名。
User:登录主机使用的用户名。
IdentityFile:用于身份验证的私钥文件路径。

github.com 域名解析出现问题时,可以在 https://www.ipaddress.com/ 查找 ssh.github.com 对应的地址(假定为 140.82.xxx.xx),替换 HostName 字段的内容。

然后在命令行界面中用 ssh -T ssh@github.com 测试连接。

假若回显

ssh: connect to host 140.82.xxx.xx port 22: Connection timed out

则可以尝试强制使用 443 端口,即 ssh -T -p 443 git@github.com

假若连接成功,则回显

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

此时,记得将 config 做出进一步修改。

最方便的做法是直接替换。

Host github.com
  HostName 140.82.xxx.xx # modified
  User git
  IdentityFile ~/.ssh/github_rsa

或者可以另外新建配置

# original (and temporarily unavailable)
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_rsa

# added
Host ssh.github.com
  HostName 140.82.xxx.xx
  User git
  IdentityFile ~/.ssh/github_rsa
  Port 443
  PreferredAuthentications publickey
  TCPKeepAlive yes

此时通过 ssh -T git@ssh.github.com 即可检测连接。但会带来问题,即在 git 使用时会略有麻烦。因为Host标识符发生了变化(从 github.com 变为了 ssh.github.com

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。