使用Github中的博客遇到的恶心问题


为啥最近突然用上Github了?

主要是使用Github对我的博客后台系统进行一个管理,目前我的博客系统如下图所示,

可以看到,如果我需要将博客内容通过Ubuntu部署到Github,我就需要将Windows中编辑好的文件通过虚拟机软件传送至我的虚拟Ubuntu系统中,这一过程需要通过我的记忆对版本进行管理 😥,然而我的记忆里贼差,很容就会忘记 ,所以这不是一个好的方案,那么怎么选取方案呢? 🤔

其实,可以通过直接在VScode中使用git管理我们的Blog代码就好了 !然后把内容Push到我们的Github的私有仓库里面,再在虚拟机里面pull下来就ok了,这样不仅保证了我们可以在.gitignore文件中确保我们不想上传的信息,还可以保证我们的信息是同步的,那么就暂且得到了我还比较满意的一个解决方案 😆

设置过程中踩到的一些雷

Github最近被墙了,💢吐了吐了 🤮,大概率是一些蠢蛋 🖕在这个美好的网站上搞了一些什么垃圾玩意儿。话说回来,Github被墙了,但我一直以来,一直觉得有危屁恩就问题不大,但是,没想到使用下面的语句验证Github链接情况的时候,遇到了各种各样的错误

ssh -T git@github.com

我第一个想法就是我电脑没有办法访问Github,但实际上,我的电脑与Github直接的链接是畅通的 ,出现问题的其实是与Github之间的验证问题。

Github的ssh key的设置

Github为了安全性,在ssh你的仓库时,需要进行验证操作,以前貌似可以使用用户名和密码进行验证,但是当前这个时间节点下,貌似已经不再可行了… ,更好的方式是采用系统产生一个ssh key,这个key存在Github上,在需要连接的时候,本地提交这个key,Github端再对这个Key进行比对操作,验证登入者的身份

在Github上如何设置ssh_key呢?其实很简单,你只需要访问你的账户,点击设置,里面有ssh_key添加的选项,但首先,你需要在本地生成一个ssh_key文件,如果没有这个文件你也是没有办法进行设置的。可以在需要设置的目录下打开命令提示符,一般Windows是C:/Users/[Your_name]/.ssh/、Linux是~/.ssh/这两个文件夹。

ssh_keygen

生成玩key之后还要配置一个Host文件夹,也是存放在相同的目录下的,具体内容大概是下面这样

Host github.com
    HostName github.com
    IdentityFile ~/.ssh/id_rsa

完成配置之后,再使用下面的语句访问应该就没有问题了。

ssh -T git@github.com

但是,还是可能会出现问题,理由是Github目前再国内属于被河蟹 🦀的状态,因此,如果一个人想要访问Github需要合理地设置帆羟 🌏的操作,可以采用下面的语句对Github的代理进行设置。

# 设置socks的代理(只对Github代理),192.168.xxx.xxx为你代理的IP地址
git config --global http.https://github.com.proxy socks://192.168.xxx.xxx:10808

# 设置http的代理(只对Github代理) 通常代理IP地址为主机(Master)的IP地址
git config --global http.https://github.com.proxy http://192.168.xxx.xxx:10809

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

# 查看现有代理配置信息
git config --global -l

😆 根据上面的命令进行代理设置就可以实现对Github的代理了,是不是非常方便呢 :+1:

基本上来说,我个人设置Github进行操作的坑在上面了,如果有其它坑我想起来的时候再记录一下吧… 😄

最近又连不上Github了

最近又连不上Github了,一直提示连接错误,这时候,需要设置一下/etc/hosts文件中的Github的IP地址,首先先使用如下命令获取Github的IP地址

nslookup github.com 8.8.8.8

然后使用管道将该表达式的输出部分的Github的IP内容通过管道传给/etc/hosts文件,即重置其中内容,使用如下命令,

nslookup github.com 8.8.8.8 | awk -F 'Address: ' 'NF>1{print $2}' | xargs -I {} echo {} github.com | sudo tee -a /etc/hosts

在做这一步之前,需要先将/etc/hosts文件中的关于Github的内容清除,使用如下命令,

sudo sed -i '/github/d' /etc/hosts

最后,再清除~/.ssh/文件夹中的known_hosts中的内容,使用如下命令,

:>~/.ssh/known_hosts;

最后,将上述所有命令组合成一个可执行脚本initial.sh,需要在每次与Github通信之前执行一遍即可,如下所示。

:>~/.ssh/known_hosts;
sudo sed -i '/github/d' /etc/hosts
nslookup github.com 8.8.8.8 | awk -F 'Address: ' 'NF>1{print $2}' | xargs -I {} echo {} github.com | sudo tee -a /etc/hosts

目前为止,解决了无法与Github连接的问题。


文章作者: 南航古惑仔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 南航古惑仔 !
  目录