为啥最近突然用上Github了?
主要是使用Github对我的博客后台系统进行一个管理,目前我的博客系统如下图所示,
![picture 1](/2022/12/11/shi-yong-github-yu-dao-de-e-xin-wen-ti/33610ac2732998e0369614d4c5c5e94c5101dfff34fdaa6025dee9c845a60462.png)
可以看到,如果我需要将博客内容通过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连接的问题。