抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一方天地

一个兴趣使然的小站

题外话不说,这篇主要说一下hexo框架的一些问题以及Git部署的奇怪BUG。以及在之后的搭建中,我所应该注意的事情。
其实也有可能是我的问题。

博客存放路径

在博客的存放路径中不可存在中文字符以及中括号等在 ASCII 中没有的符号或文字,不然会遇到一些十分恶心的问题。这可能是 Hexo 渲染器的问题。

在最近的博客重建中,未曾额外注意过编码的问题,我错误的将博客放置在了我 E 盘的 [Blog] 文件夹中。从而导致我的本地预览出现问题,使其无法正常加载 CSS


部署问题

在部署过程中也有不少的问题,其中我遇到的包括:

  1. ssh: connect to host github.com port 22: Connection refused
  2. ssh: connect to host github.com port 22: Connection time out
  3. kex_exchange_identification: Connection closed by remote host
    关于以上问题我使用了如下方法:
  4. 设置 RSA 密钥
  5. 检查并设置代理
  6. 更换端口号
  7. 重新登陆
  8. 将 SSH 更换为 HTTPS 链接
  9. 取消代理

设置 RSA 密钥

关于第一个方法是针对于一台新电脑或已经重置系统的用户,第一步需要本地生成 ssh key
第一步:在终端中输入ssh-keygen -t rsa -C example@example.com

其中,example@example.com 需更改为自己的邮箱

第二步:使用自己喜欢的文本编辑器打开 %USERPROFILE%/.ssh 文件夹下的 id_rsa.pub 文件,并复制其中全部内容。

.ssh文件夹可能是隐藏的,可能需要 Ctrl + H 显示隐藏文件夹

第三步:打开 Github,找到在 Setting 中的 SSH and GPG keys,点击 New SSH key。将第二步过程中内容全部拷贝到 Key 输入框中。名称随意,但建议使用自己本机系统作为名称。

最后,完成上述所有操作之后可以和回到终端中,输入 ssh -T git@github.com 测试SSH链接。


检查并设置代理

其实,不只是 RSA 的问题对吧。

  1. Windows CMD 代理
    • HTTP代理
      1
      2
      set http_proxy=http://127.0.0.1:7890
      set https_proxy=http://127.0.0.1:7890
    • Socks5 代理
      1
      2
      set http_proxy=socks5://127.0.0.1:7890
      set https_proxy=socks5://127.0.0.1:7890
    • 取消代理
      1
      2
      set http_proxy=
      set https_proxy=
      认为自己已经设置完的,可以使用 echo %http_proxy% 进行检查。
  2. Git Bash 代理
    • HTTP 代理
      1
      2
      git config --global http.proxy http://127.0.0.1:7890
      git config --global https.proxy http://127.0.0.1:7890
    • Socks5 代理
      1
      2
      git config --global http.proxy socks5://127.0.0.1:7890
      git config --global https.proxy socks5://127.0.0.1:7890
    • 取消代理
      1
      2
      git config --global --unser http.proxy
      git config --global --unser https.proxy

输入 ssh -T git@github.com 测试SSH链接。


更换端口号

一般来讲,设置代理后 Git 就已经正常了,但我不是一般。
若发现设置代理后,Git 还是无法正常使用,则可以尝试更改端口。
首先打开 %USERPROFILE%/.ssh 文件夹,使用自己喜欢的文本编辑器打开该文件夹中的 config 文件,输入以下内容

若没有 config 文件请自行创建,注意没有后缀名

1
2
3
4
5
6
7
8
Host github.com
User example@example.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
ServerAliveInterval 20

输入 ssh -T git@github.com 测试SSH链接。

上述中,Example@example.com 以及 <PROXY-HOST>:<PORT> 请依照自己的情况进行填写。


重新登陆

进展到这一步,95%的人应该都可以成功了,如果还不行……
重新登陆试一试?
第一步: 在 终端中输入以下内容

1
2
git config --global user.email "example@example.com"
git config --global user.name "example"

example……不重复了喵!操作完成后需要设置 RSA 密钥


将 SSH 更换为 HTTPS 链接

建议在使用每一种方法前,优先使用该方法。


取消代理

其实我使用过上述全部办法,但结果都是出奇的一致。所以,我考虑了一下取消所有代理,结果很好,成功了!
所以,如果有代理的小伙伴也可以试一试这种办法哦~


奇怪的 Bug

第一次使用22端口提示:

1
2
$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection refused

于是我更换了443端口:

1
2
$ ssh -T git@github.com
kex_exchange_identification: Connection closed by remote host

然后我又换回了22端口:

1
2
$ ssh -T git@github.com
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

评论