git第十二讲基于ssh密钥的方式连接github和github的网页类型仓库设置

基于ssh密钥的方式连接github

当使用普通的模式连接github的时候,需要在连接的时候输入github的用户名和密码,在github中提供了另外一种连接方式,就是基于ssh认证的方式,使用了这种方式之后,以后连接github都不用再输入任何的用户和密码信息,连接时会自动通过ssh的密钥进行验证。设置ssh密钥的流程有:

1、在我的文档的目录中创建一个.ssh的文件夹
2、在本地生成ssh的私有和公有密钥
3、在github网站上添加本地生成的密钥
4、测试连接

在我的文档目录创建一个.ssh的文件夹

找到我的文档的目录,在windows系统中一般在C:\Users\xx中,但是需要注意的是在win系统中无法直接在我的电脑里面创建.开头的目录,需要在命令提示符中创建这个目录。

C:\Users\konghao>mkdir .ssh -->创建.ssh目录

C:\Users\konghao>dir .ssh
 驱动器 C 中的卷是 系统
 卷的序列号是 0000-3D66

 C:\Users\konghao 的目录
2017/03/24 周五  08:31    <DIR>          .ssh -->查询这个目录

创建密钥

1、打开git bash,如果在git的时候选择了将git的命令添加到命令提示符中之后,即可在命令提示中使用。

2、输入ssh密钥的生成命令,输入命令ssh-keygen -t rsa -b 4096 -C "ynkonghao@gmail.com"可以生成一个ssh的密钥。

输入完成之后会提示Enter file in which to save the key (/c/Users/konghao/.ssh/id_rsa):这意味着让你输入一个密钥的地址,这个地址在win中是不能更改的,/c/Users/konghao/.ssh表示的是第一步所创建的.ssh的目录,id_rsa表示的是密钥的文件名。这些都是不能更改的,如果希望一台电脑中有多个密钥,需要增加新的配置,这个部分大家通过网络即可获取操作方式。

C:\Users\konghao>ssh-keygen -t rsa -b 4096 -C "ynkonghao@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/konghao/.ssh/id_rsa): /c/Users/konghao/.ssh/id_rsa

输入完成密钥的地址之后,会有提示让输入Enter passphrase (empty for no passphrase):,这个表示口令,当设置了这个口令之后,以后每次通过ssh登录github都需要输入这个口令,这样就算本地的私有密钥文件丢失,其他人不知道你的口令也无法使用ssh登录也不会如果输入以后在连接ssh时还需要输入这个口令,这样可以增加它的安全性,但带来的问题就是每次都得输入登录口令,操作相对麻烦一些,但ssh提供了ssh-agent可以处理这个问题。

此时如果你不输入passphrase直接回车即可,这样就完成了ssh密钥的创建,如果输入了passphrase,以后我们每次连接ssh都需要输入口令。


#输入添加ssh密钥的命令
C:\Users\konghao\.ssh>ssh-keygen -t rsa -b 4096 -C "ynkonghao@gmail.com"
Generating public/private rsa key pair.
#输入密钥文件的生成地址,如果不输入就直接生成在/c/Users/konghao/.ssh/中,其中/c表示win的c盘
Enter file in which to save the key (/c/Users/konghao/.ssh/id_rsa):、
#输入口令,此处个人是输入了口令的,为了演示ssh-agent的操作
Enter passphrase (empty For no passphrase):
Enter same passphrase again:
#完成ssh密钥的创建
Your identification has been saved in /c/Users/konghao/.ssh/id_rsa.
Your public key has been saved in /c/Users/konghao/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Nn0cDnMZ1w5WVv+dh4tkuBTapbnWHbaJhC9lGbtHauc ynkonghao@gmail.com
The keys randomart image is:
+---[RSA 4096]----+
|            . .o=|
|             +o.o|
|          + *. o.|
|         + & = .=|
|        S O % =.+|
|       . o % O =.|
|          = O B  |
|         . o +   |
|              E  |
+----[SHA256]-----+

C:\Users\konghao\.ssh>dir
 驱动器 C 中的卷是 系统
 卷的序列号是 0000-3D66

 C:\Users\konghao\.ssh 的目录

2017/03/24 周五  09:58    <DIR>          .
2017/03/24 周五  09:58    <DIR>          ..
2017/03/24 周五  09:58             3,326 id_rsa  #私有密钥文件
2017/03/24 周五  09:58               745 id_rsa.pub #公有密钥
               2 个文件          4,071 字节
               2 个目录 187,734,855,680 可用字节

创建完成之后我们发现在.ssh文件中多了两个文件,这两个文件就是ssh的登录密钥,其中id_rsa表示本地的私有密钥,而id_rsa.pub表示公有密钥,需要把公有密钥id_rsa.pub添加到github中。由于我在创建密钥时输入了口令,所以连接ssh都需要输入口令,为了可以完成连接,我们需要在github中添加公有密钥id_rsa.pub

在github上添加公有密钥

进入github的网站,点击自己的头像,选择settings

github的ssh认证
github的ssh认证

进入个人设置之后选择SSH AND GPG Keys

github的ssh认证
github的ssh认证

选择new SSH Key

github的ssh认证
github的ssh认证

打开刚才在.ssh文件夹中生成的id_rsa.pub文件,该文件就是ssh的公共密钥

github的ssh认证
github的ssh认证

在github网站的中添加刚才的密钥信息,首先添加一个标题,之后将id_rsa.pub的内容拷贝到key的输入框中。

github的ssh认证
github的ssh认证

添加完成之后,在命令提示符中输入ssh -T git@github.com可以测试是否连接成功,由于在创建密钥时我输入了口令,所以验证的时候会让我输入口令。

C:\Users\konghao>ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.
Enter passphrase for key '/c/Users/konghao/.ssh/id_rsa':
Hi ynkonghao! You've successfully authenticated, but GitHub does not provide shell access.

到此为止ssh的配置已经基本完成,但是由于在创建时我输入了口令,这就导致每次连接github都得输入,稍显麻烦,此时我们使用ssh-agent解决这个问题。这个操作需要在gitbash中进行操作。

在gitbash中首先输入eval $(ssh-agent)开启agent模式,之后输入ssh-add /c/Users/konghao/.ssh/id_rsa即可将我的密钥添加至ssh-agent,添加完成之后,我们再次进行验证就不用输入口令了。但该操作都是在ssh-agent中使用的,只要关闭窗口下次依然需要输入口令进行验证,这样就算在命令提示符中也不起作用。所以如果非特殊的环境,不一定非要设置ssh的验证的口令。

$ eval $(ssh-agent)
Agent pid 6748 ##进入代理模式

konghao@SD-201702261156 MINGW64 ~
$ ssh-add /c/Users/konghao/.ssh/id_rsa
Enter passphrase for /c/Users/konghao/.ssh/id_rsa:
Identity added: /c/Users/konghao/.ssh/id_rsa (/c/Users/konghao/.ssh/id_rsa)

konghao@SD-201702261156 MINGW64 ~
$ ssh -T git@github.com ##此时就不需要输入验证口令,但重新启动窗口还需要重新设置agent
Hi ynkonghao! You've successfully authenticated, but GitHub does not provide shell access.

需要注意的是,当设置了ssh之后,我们以后访问github就不能再使用https://github.com/ynkonghao/xxxx.git来访问,而需要使用git@github.com:ykonghao/xxx来访问。

github设置网页类型仓库

在实际的开发中我们可能会有这样的一种特殊需求,就是把自己的图片上传到github中,之后在项目中引用这些图片,此时如果直接使用github上的图片地址(如:https://github.com/ynkonghao/test/01.png)来访问并不会直接打开这些图片的,而是会打开github的地址,此时需要在地址后增加?raw=true的参数才能直接打开图片(https://github.com/ynkonghao/test/01.png?raw=true)。

github为每个用户提供了一个网页类型的仓库,只要设置了这个仓库,我们就可以更加快捷的来访问github上自己的资源,注意每个用户只能设置一个网页仓库。

首先基于用户名创建一个仓库,假设我的用户名是kh121,那我们就需要创建一个kh121.github.io的仓库,之后进入仓库的settings

github创建个人网页仓库
github创建个人网页仓库

找到github pages的选项,在这个选项中选择一个主题即可,当然主题也可以自己定义和设置

github创建个人网页仓库
github创建个人网页仓库

选择一个主题之后,github的page就算设置完成了

github创建个人网页仓库
github创建个人网页仓库

此时通过https://kh121.github.io即可访问我们定义的仓库主页,我们以后就可以在该仓库中添加自己所需要的内容,此时我们clone一下工厂,然后推送一张图片上去,然后直接通过类似的地址https://kh121.github.io/img/01.jpg即可访问图片。


##克隆工厂到本地
E:\study\git_2016\11>git clone https://github.com/kh121/kh121.github.io
Cloning into 'kh121.github.io'...
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

E:\study\git_2016\11>cd kh121.github.io

##创建一个img的文件夹存储文件
E:\study\git_2016\11\kh121.github.io>mkdir img

E:\study\git_2016\11\kh121.github.io>git add .

E:\study\git_2016\11\kh121.github.io>git commit -m "test img"
[master 3e123bc] test img
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 img/01.jpg ##文件名是01.jpg
##将文件推送到服务端
E:\study\git_2016\11\kh121.github.io>git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 825.44 KiB | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/kh121/kh121.github.io
   4e233c5..3e123bc  master -> master

当创建完页面并选择主题之后可以通过修改index.md这个文件来修改自己的网页,为了方便期间,个人在这个文件中加入了一个仓库的超链接。

[My GitHub Repository](https://github.com/kh121/kh121.github.io)

此时再次打开https://kh121.gihub.io会发现多了这样一个连接

github创建个人网页仓库
github创建个人网页仓库

你同样也可以根据markdown的语言来调整自己的个人网页。

最后我们同样也可以将一个github的新工厂加入到这个网页工厂中进行显示,操作也非常简单,就是创建工厂和选择主题即可。此处我创建了一个page的工厂

github创建个人网页仓库
github创建个人网页仓库

之后选择一个主题,之后通过https://kh121.github.io/page即可访问

github创建个人网页仓库
github创建个人网页仓库

简单总结

这一部分的内容就到此为止了,基于ssh的验证基本上是每个github的使用者必须使用的一个手段,另外基于github的网页工厂可以根据自己的需求来进行考量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,632评论 9 163
  • 鲤鱼破肚挂树上,厨房叮当酒飘香。外甥嘻闹轮滑爽,庭前练字晒暖阳。 2016.02.09 猴年春节假期 正月初二 姐...
    youreda阅读 173评论 0 0
  • 字数:1479 阅读需要4分钟 写作时间:1小时 1 2017年7月5日,是一个平凡的日子。距离纠结难受的星期一已...
    小火咕嘟阅读 951评论 0 4
  • 春节临近,在收拾屋子的同时,听着百家讲坛汉代风云人物之项羽,使时间变得有意义,果然收获了一个全新的项羽!最重要的一...
    云霏1988阅读 542评论 0 0