最近为了使用Gridea写静态博客,好不容易从Macbook上找到了旧的Gridea文件夹。Gridea不会推送整个博客的所有文件,而仅仅是生成的HTML和所需的资源文件。我不想使用onedrive同步gridea文件夹,于是想到使用github的私有仓库来同步,于是要开始一番操作了。
首先,GitHub已经停止使用用户名和密码push仓库,所以只能使用SSH认证。
第一步就是要生成一对SSH密钥。
理想状态下, 应该是一个自然人拥有一对SSH密钥就够了,使用unix登录、github等等都用这一套密钥,但是处于隐私原因也好,还是分开管理,我选择单独为GitHub生成一对新的密钥。无论是再Windows、mac还是linux上,使用下面的命令可以开始生成一对密钥。
ssh-keygen -t rsa -C
然后跟随提示,注意选择一个文件名,不要总是使用默认的文件名,免得引起混乱。
在Github账户设置里添加SSH公钥
在GitHub账户设置的SSH and GPG keys一栏里,选择new SSH key按钮,填写一个合适的title帮助记忆这个key的用途,key type选择默认的authentication key就好,将上一步生成的puh结尾的公钥文件的内容全部复制到网页上key一栏中,点击add SSH key按钮即可。

在本地电脑上配置SSH和git
在生成密钥之后,SSH和git依然不会使用这对密钥连接GitHub和任何其他服务。要将新生成的四幺添加到ssh-agent才行。
在WSL和Windows上,由于ssh服务不运行,需要先启动ssh-agent。可以直接运行下面的命令,也可以添加到用户的.profile里边让shell启动的时候自动运行。
eval $(ssh-agent)
然后使用ssh-add添加私钥。
ssh-add ~/.ssh/github-pri
使用git的ssh方法克隆仓库或指定remote
从github克隆仓库的时候注意要使用ssh方法而不是https。
如果不是克隆,二十给本地仓库设置一个remote origin,拿主意改成ssh的url而不要使用https的url。