热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

title:如何生成多个ssh并将hexo博客布置到github

原文地址:Seven’sBlog生成新的公钥和密钥生成新的公钥$ssh-keygen-trsa-Cyour-email-address注意这里不能一

原文地址:Seven’s Blog

生成新的公钥和密钥


生成新的公钥

$ ssh-keygen -t rsa -C "your-email-address"

注意这里不能一直按enter键,否则会覆盖原来我的ssh。
当出现下面的第一行时,要输入新的ssh的地址并且命名。如下就是将id_rsa_aaa保存在了root/.ssh/下,并命名为id_rsa_aaa。注意window目录下不是root,你要找到你相应的.ssh的地址。如/c/users/username/.ssh/

Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa_aaa.

输入后就生成了一个新的ssh。


将公钥拷贝到github

这时候需要进入github的settings里面的ssh。并把生成的公钥复制到对应的栏目里。直接vi id_rsa_aaa.pub,就可以编辑复制。


加入ssh agent上

把该key加到ssh agent上。由于不是使用默认的.ssh/id_rsa,所以你需要显示告诉ssh agent你的新key的位置

$ ssh-add ~/.ssh/id_rsa_aaa

这时,你可能会报一个错:

Could not open a connection to your authentication agent 

此时先执行 eval ssh-agent(是~键上的那个)再执行 ssh-add ~/.ssh/id_rsa_aaa就可以成功。下面可解释原因。

SSH private-keys are usually stored encrypted on the computers they are stored on. A pass-phrase is used to decrypt them when they are to be used. Since most people use SSH public-private key-pairs to get around typing in passwords all the time, the ssh-agent daemon exists to store decrypted private-keys you plan on using in a given session. The thing most people get tripped up on when using ssh-agent is that what the program outputs, some borne or csh shell commands, needs to be run. It may look like ssh-agent has set some variables for you, but it has in fact done no such thing. If you call ssh-add without processing ssh-agent’s output, it will complain it is unable to open a connection to your authentication agent. The most straightforward way to run ssh-agent on the command line is as follows: eval ssh-agent. After doing this, calls to ssh-add should succeed without error.

可以通过下面的命令测试是否生成ssh成功:

//检测原来的github账号的ssh是否设置成功
ssh -T git@github.com
//检测新的ssh是否设置成功
ssh -T git@github_aaa.com

配置config文件

.ssh下面本来是没有config文件,因为默认你的电脑就只有一个github与本地关联。但由于此时有多个github和对应的ssh,所以必须要配置才能加以区分。进入$ vi .ssh/config。并加入下列内容。保存后退出。

# 加上以下内容
#default github
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa

Host github_aaa.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_aaa

如何使用

这样的话,你就可以通过使用github.com别名github_aaa来明确说你要是使用id_rsa_aaa的SSH key来连接github,即使用工作账号进行操作,如下:

#本地建库
$ git init
$ git commit -am "first commit' #push到github上去 $ git remote add origin git@github_aaa.com:xxxx/test.git $ git push origin master

由于我是要把hexo博客部署到github上,所以方式有所不同,更改_config.yml文件:

deploy:
  type: git
  repository: git@github_aaa.com:zxqblog/zxqblog.github.io.git
  branch: master

如上,上面的@后面不是github.com而是我们刚刚起的别名,github_aaa.com。注意这里的type要写成git而不是默认的github,否则会报下面的错:

error deployer not found:github

这是由于hexo 更新到3.0之后,deploy的type 的github需要改成git。


部署hexo博客到github

首先新建一个仓库

如:zxqblog.github.io。最好是以这种形式命名。Github Pages的Repository名字是特定的,比如我Github账号是cnfeat,那么我Github Pages Repository名字就是cnfeat.github.io。


部署仓库

使用命令

hexo clean
hexo generate
hexo deploy

在部署的过程中你可能会出现以下的几个问题:

问题1 Error: spawn ENOENT 错误信息解决方案

解决方法就是在cmd下敲的命令无法实现,我们把命令在git shell下面敲打就可以实现了。或者配置环境变量如:C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\libexec\git-core,这样就解决了问题了。

问题2 页面一直显示 404 page 解决方案

在github部署完成之后,马上访问可能出现404错误,这是正常的,(最多)等待十分钟左右就可以访问了。如果还不行,那很可能是 github 发送给你的验证邮件你没有打开看,据多方反映,验证后就没问题了。或者是验证邮箱里会出现deploy false的现象,并告诉你部署不成功的原因。这时候你去检查文件,再查找原因即可。

问题3 Page build failed: Missing submodule的解决方案

这个问题我犯的真的很低级。因为以前都是通过阿里云来部署我的网站。以为github page部署hexo是一样的,于是就用先前的:git init,git add,git commit,git remote add,git push来做。

但后来知道github page部署hexo不需要这样,只需要上面的步骤配置好_config.yml文件即可。造成这个错误的原因有很多。但是我的错误的大概原因是git里面又有git。或者是git文件不正确(不一定理解正确。。。)。解决方法是重建仓库,查到以前有人用:

- Make a backup of the content locally
- Delete the repository from GitHub
- Delete the repository locally
- Recreate the repository, ensuring that you don't include the repository within the repository locally, which is what you did previously
- Push it to GitHub

这个方法解决了,其实就是重新建了仓库。简单的方法是把原来blog里的所有git全部删除,包括deploy_git。然后把github上的文件全部清空。只保留库名字。然后再deploy即可。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
author-avatar
blankworld
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有