一.环境

1.1 操作系统(其他发行版亦可):

[root@gysl ~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

1.2 Git版本:

[root@gysl ~]# git --version
git version 1.8.3.1

二.步骤

2.1 下载并安装Git软件。

[root@gysl ~]# yum -y install git

2.2 创建SSH key。

[root@gysl ~]# ssh-keygen -t rsa -b 2048 -C "gysl@github.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:QYCyVkZQyuMZFG4vH8ulyo7L4x5Jz1ewWhhD69mVhI8 gysl@github.com
The key's randomart image is:
+---[RSA 2048]----+
|  +*o.oo.        |
| +o.=....        |
|  BO .oo.        |
| o+=*E+. .       |
| o++o+..S        |
|. ++o=.          |
| o +=.           |
|.+...            |
|=*=              |
+----[SHA256]-----+

这里简单提一下ssh-keygen的几个选项,-t指定加密算法,-b指定位数,-C可以理解为注释(comment),随意填写,可以填写为管理员邮箱。连续按几次enter键即可,其余不必理会。

2.3 在GitHub的settings里面添加刚刚创建的SSH key的公钥。

[root@gysl /]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjI58Vk8kCQqu6PPng8/bjkZY2JrsH/kExR9JpZ9I+i71H744Mpi7VnaBnbgye15ri4jG7DKFVMUKU7dflplL4+th90B2QIAEBKrXbIUV9LJH5InL/uJQ9+Gu7NK/vIboFhFLKgSzE3EU3p5SQcCNkGFL9ygQ18FPE2d2mwm+fOhNC73OrlADqZwLJ99wXKoH+3wX/b0l+NBsCE7usPE4bxQK6ZDWtjjvsQ2QWtlGO4ia7m3VdDmumV2byFEyeEpAN2dbMmlkVeix8+VmVNkPbJKkeSyjIXaJcjDJdyeqCcV0Kwx9jY+yU13LVZIBJ4wUBvtjO/u/RKDDsz1Ie+QrJ gysl@github.com

上一步连续按了几次回车键,其实就是采用默认设置,默认情况下新生成的key位于~/.ssh/目录下。把id_rsa.pub的内容添加到GitHub。具体步骤为:settings(点击右上角用户头像) -> SSH and GPG keys -> New SSH key -> ADD SSH key.Title随便填,Key部分就是复制的内容。也可以在登陆后直接输入以下地址:https://github.com/settings/ssh/new

2.4 测试一下是否添加成功。

[root@gysl /]# ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi mrivandu! You've successfully authenticated, but GitHub does not provide shell access.

此处需要输入一个yes。出现以上内容,说明key已经添加成功。

2.5 Clone一个自己的仓库试一下。

[root@gysl /]# git clone git@github.com:mrivandu/MyImageHostingService
正克隆到 'MyImageHostingService'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 31 (delta 8), reused 15 (delta 2), pack-reused 0
接收对象中: 100% (31/31), 2.42 MiB | 563.00 KiB/s, done.
处理 delta 中: 100% (8/8), done.

Clone成功。

2.6 更新一个文件,并push。

[root@gysl MyImageHostingService]# git config --global user.email "mrivandu@hotmail.com"
[root@gysl MyImageHostingService]# git mv 20181107200317.png Linux下GitHub快速配置并使用.png
[root@gysl MyImageHostingService]# git commit
[master 4d7f9a1] Rename  20181107200317.png -> "Linux\344\270\213GitHub\345\277\253\351\200\237\351\205\215\347\275\256\345\271\266\344\275\277\347\224\250.png"1 file changed, 0 insertions(+), 0 deletions(-)rename 20181107200317.png => "Linux\344\270\213GitHub\345\277\253\351\200\237\351\205\215\347\275\256\345\271\266\344\275\277\347\224\250.png" (100%)
[root@gysl MyImageHostingService]# git push
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 344 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To git@github.com:mrivandu/MyImageHostingService8bf8dfe..4d7f9a1  master -> master

至此,全部操作完成。需要注意的是:在此步骤中可能需要输入用户名及密码

2.7 拓展一下。我们已经把公钥增添只GitHub,我们的私钥能否保存到U盘随身携带呢?答案是可以的。怎么操作呢?请往下看。

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA4yOfFZPJAkKrujz54PP245GWNia7B/5BMUfSaWfSPou9R++O
DKYu1Z2gZ24Mntea4uIxuwyhVTFClO3X5aZS+PrYfdAdkCABASq12yFFfSyR+SJy
/7iUPfhruzSv7yG6BYRSyoEsxNxFN6eUkHAjZBhS/coENfBTxNndpsJvnzoTQu9z
q5QA6mcCyffcFyqB/t8F/29JfjQbAhO7rDxOG8UCumQ1rY477ENkFrZRjuImu5t1
XQ5rpldm8hRMnhKQDdnWzJpZFXosfPlZlTZD2ySpHksoyF2iXIwyXcnqgnFdCsMf
Y2PslNdy1WSASeMFAb7Yzv7v0Sgw7M9SHvkKyQIDAQABAoIBADfbycKvrm484SiS
2EzHEn9SjWNR0QsdLwEkjY1Yd+7jxK/NLNzVfY0RD6KAAOCLW07Sm7JJX9+olpwz
hbW3Wo5aeiUuqiaIiFa2HzT9kK5A6MEhBLD4vpQi5LOMOHwRikLTEN02OUFMfkU6
lCGVQk7aYIaDSNfO+3rcrVLWXEcGtW7w7M116eWcZhYNjStO6yqv6vNpGQfAQVeD
bKrd5pWwWXw9GEiIx98pbFWuZYl6zFyPzMOHu3bvBhEnV83FTUthmuG/bvmlINie
OvRFFhllbeDUIkmWPlH7r/3pSUq+TCp205/mGJPJlH/upzUuazjqkgcd4Lcpb3sx
5XwI7qUCgYEA/tQyiZ5w1+bUQc4198T5ULLs3shi8AAvNrJBtmAF8YshkiuZ0dWH
G2IwIWVU0fczXl/mV8fUcspwnB7c0Gxsj4qkcYYcvMp3eOumO+EptONWIn7C4tTj
enaPnjJHshKwSSuhJYc2bJl+dvK5E5JiujlOXNilS06Iyq0kK8Zdpf8CgYEA5C7Y
7/xaRYBSAA0Ph1LHSZLNa2pByq7XbkhXwoRysnirtl+znsNQdNX6vm0p+xt3OTUP
PD/XxzouKI2HHI4zs2bHMHS5Oh0axgdbOTzrZyvZh23dAwFNtt2FOlpoxXPwLLe9
qwhrL2u5LAVv26b41AetITDqWN7nyavtR4M/nzcCgYEA6Cj0vfIuRlSTDjzLaCb5
KO9J5BHWKWdRnFg8i+XhpFSoSh4U7lnF1EnZJaPG6d932kQue8yfndEXVPS9IdmV
8hRSiuavKcSfofe2pBkXwSfYomawMK3ZbQm1AGA4d2CVYKQyFRmhmMEiuUWbHdyg
u55X6TirJveuok+pg4Qeb4sCgYEAySWy/vsJ6LKRlpHs2nHSU70hcEse7Djsl78V
/dcb9NADLqV2hcHPLu9iNnOsyjsQAlIPuCDfajSTdBQuwrFoSgGUHdcHYX8+lsrt
U6usKCqze3sRlRCVHVpxk1sXeNgXJJRkkly9f/QKLBAu5wZt2xtZNyUTsHvvAAyb
AqtkbkkCgYADUHQadxHZxNhwHNW/yhfGxSU/lOm2CMM5AbMrmemPNxAafw5QYNUq
iNA1pfQ0KJvciM0078lUEIrt4L3ehR85opLNIjeZ728V/r/OzZVS6TsxNy5ZXK2B
9fLSNix4p8BUMHxQ7ArQrOEWZMsrSqyZwjPLebhI87AaheIZzUvYMA==
-----END RSA PRIVATE KEY-----

这是与刚刚我们增添至GitHub配对的私钥,我现在已经将~/.ssh目录下及/tmp目录下的内容全部清空。

[root@gysl ~]# ll .ssh/ /tmp/
.ssh/:
总用量 0
/tmp/:
总用量 0

再次测试一下:

[root@gysl ~]# ssh -T git@github.com
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
Permission denied (publickey).

此时已经可以确认连接我们的GitHub账户已经失败。

[root@gysl ~]# echo '-----BEGIN RSA PRIVATE KEY-----
> MIIEpAIBAAKCAQEA4yOfFZPJAkKrujz54PP245GWNia7B/5BMUfSaWfSPou9R++O
> DKYu1Z2gZ24Mntea4uIxuwyhVTFClO3X5aZS+PrYfdAdkCABASq12yFFfSyR+SJy
> /7iUPfhruzSv7yG6BYRSyoEsxNxFN6eUkHAjZBhS/coENfBTxNndpsJvnzoTQu9z
> q5QA6mcCyffcFyqB/t8F/29JfjQbAhO7rDxOG8UCumQ1rY477ENkFrZRjuImu5t1
> XQ5rpldm8hRMnhKQDdnWzJpZFXosfPlZlTZD2ySpHksoyF2iXIwyXcnqgnFdCsMf
> Y2PslNdy1WSASeMFAb7Yzv7v0Sgw7M9SHvkKyQIDAQABAoIBADfbycKvrm484SiS
> 2EzHEn9SjWNR0QsdLwEkjY1Yd+7jxK/NLNzVfY0RD6KAAOCLW07Sm7JJX9+olpwz
> hbW3Wo5aeiUuqiaIiFa2HzT9kK5A6MEhBLD4vpQi5LOMOHwRikLTEN02OUFMfkU6
> lCGVQk7aYIaDSNfO+3rcrVLWXEcGtW7w7M116eWcZhYNjStO6yqv6vNpGQfAQVeD
> bKrd5pWwWXw9GEiIx98pbFWuZYl6zFyPzMOHu3bvBhEnV83FTUthmuG/bvmlINie
> OvRFFhllbeDUIkmWPlH7r/3pSUq+TCp205/mGJPJlH/upzUuazjqkgcd4Lcpb3sx
> 5XwI7qUCgYEA/tQyiZ5w1+bUQc4198T5ULLs3shi8AAvNrJBtmAF8YshkiuZ0dWH
> G2IwIWVU0fczXl/mV8fUcspwnB7c0Gxsj4qkcYYcvMp3eOumO+EptONWIn7C4tTj
> enaPnjJHshKwSSuhJYc2bJl+dvK5E5JiujlOXNilS06Iyq0kK8Zdpf8CgYEA5C7Y
> 7/xaRYBSAA0Ph1LHSZLNa2pByq7XbkhXwoRysnirtl+znsNQdNX6vm0p+xt3OTUP
> PD/XxzouKI2HHI4zs2bHMHS5Oh0axgdbOTzrZyvZh23dAwFNtt2FOlpoxXPwLLe9
> qwhrL2u5LAVv26b41AetITDqWN7nyavtR4M/nzcCgYEA6Cj0vfIuRlSTDjzLaCb5
> KO9J5BHWKWdRnFg8i+XhpFSoSh4U7lnF1EnZJaPG6d932kQue8yfndEXVPS9IdmV
> 8hRSiuavKcSfofe2pBkXwSfYomawMK3ZbQm1AGA4d2CVYKQyFRmhmMEiuUWbHdyg
> u55X6TirJveuok+pg4Qeb4sCgYEAySWy/vsJ6LKRlpHs2nHSU70hcEse7Djsl78V
> /dcb9NADLqV2hcHPLu9iNnOsyjsQAlIPuCDfajSTdBQuwrFoSgGUHdcHYX8+lsrt
> U6usKCqze3sRlRCVHVpxk1sXeNgXJJRkkly9f/QKLBAu5wZt2xtZNyUTsHvvAAyb
> AqtkbkkCgYADUHQadxHZxNhwHNW/yhfGxSU/lOm2CMM5AbMrmemPNxAafw5QYNUq
> iNA1pfQ0KJvciM0078lUEIrt4L3ehR85opLNIjeZ728V/r/OzZVS6TsxNy5ZXK2B
> 9fLSNix4p8BUMHxQ7ArQrOEWZMsrSqyZwjPLebhI87AaheIZzUvYMA==
> -----END RSA PRIVATE KEY-----'>~/.ssh/id_rsa
[root@gysl ~]# chmod 600 .ssh/id_rsa
[root@gysl ~]# eval `ssh-agent`
Agent pid 4278
[root@gysl ~]# ssh-add .ssh/id_rsa
Identity added: .ssh/id_rsa (.ssh/id_rsa)

此步骤中需要注意的是,echo后面的引号不要用双引号,私钥的权限要求为600,后面的两条命令必不可少,不解释!
再次测试一下:

[root@gysl ~]# ssh -T git@github.com
Hi mrivandu! You've successfully authenticated, but GitHub does not provide shell access.

再次体会到成功的喜悦。以上内容是使用本人的GitHub账户亲自实战的,私钥已删除,请勿使用此私钥尝试连接本人GitHub仓库。

三.总结

3.1 很久之前就在使用Github了,但是一直未能写一片关于GitHub的使用教程。GitHub为我们的coding工作带来了极大便利,学会使用这个工具显得格外重要。

3.2 本文仅仅介绍了Git在Linux环境下的主要配置方法,其他环境也大同小异。

3.3 文中涉及到的git命令的使用极为简单,如需进一步使用,还需要进行系统话的学习,此步骤可以参阅本文相关资料部分。

3.4 我的GitHub除了代码托管之外,还被我当成了博客备份的地方及图床,一般人我都不告诉他。此处邪恶一笑~

四.相关资料

4.1 Github官方文档

4.2 Git官方中文文档

Linux环境中,GitHub的配置使用极简教程相关推荐

  1. 百战RHCE(第十四战:Linux进阶命令十一-nmcli 配置网络极简管理)

    哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...

  2. CentOS安装使用.netcore极简教程(免费提供学习服务器)

    本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用. 仅针对CentOS,其它Linux系统类似,命令环节稍加调整: 需 ...

  3. Linux环境中Visual Studio Code的配置使用----编译运行C/C++(良心教程)

    之前的博文分享了下载安装[VS code]的详细教程, 有需要速戳–>Linux环境中Visual Studio Code 安装配置及其卸载(详细教程) 本篇博文分享本人初次使用[VS code ...

  4. Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)

    两篇相关博文: 在VMware15中创建虚拟机安装ubuntu系统(超详细教程) Linux环境编译运行C/C++语言程序----配置gcc.g++(详细教程) 此篇分享我在linux环境下安装VS ...

  5. Avatarify-人脸驱动项目在Linux环境中的实现

    蚂蚁的牙是什么颜色的? ~ 黑色的! ~蚂蚁牙黑~  今年2月,"蚂蚁牙黑"一夜之间风靡各大社交平台,我们看到的视频都是通过手机软件Avatarify制作的,今天来聊一聊Githu ...

  6. 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术

    本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...

  7. linux环境中通过useradd命令,创建用户的时候指定用户的base-dir

    需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...

  8. linux命令界面下载kettle,kettle在linux环境中打开图形界面-Go语言中文社区

    kettle在linux环境中打开图形界面 kettle数据转换的时候需要图形界面 当运行./spoon.sh时,如果没有图形界面,会出现下面的结果 ./spoon.sh [root@localhos ...

  9. Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍

    本文讲的是Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍, 前言 建议阅读本文之前,你对ARM组件的有个基本了解,本文会先为你介绍32位Linux环境中进程的内存布局,然后再介绍堆栈和堆 ...

最新文章

  1. C语言 数据类型(就做个笔记总结)
  2. HESSIAN 海森矩阵
  3. 常用代码整理(重要)
  4. HTML+CSS实战作业
  5. 银行登录控件仿制--防钩子,防嗅探
  6. ubuntu 20 安装vnc_Windows 远程控制 Ubuntu 系统
  7. 火狐一打开就弹出错误控制台 解决方案 及常用插件列表备份
  8. oracle自带的加密函数,oracle 的加密解密函数
  9. 2021年中国物流地产行业发展报告
  10. 深入理解设计模式-建造者模式(生成器模式)
  11. 相机模型与坐标转换!
  12. 哪个不是计算机使用的汉子编码,下列不是计算机上使用的汉字编码的是( )。 A.字型码 B.外码 C.内码 D.条形码...
  13. arduino uno r3单片机封装图_第十二节 电路识图 从Arduino开始讲起
  14. PS 滤镜——扩散特效, 毛玻璃 效果
  15. 1688图片搜索淘宝商品接口
  16. PyQt5 第七章 综合篇(一)
  17. UE4之材质球UV缩放、偏移及旋转
  18. 如何处理接口幂等性问题(重复提交)
  19. 私钥,公钥的区分——私钥公钥讲解
  20. uni-app 相机相册选择图片转base64

热门文章

  1. LOL不用下载就能玩了?
  2. 电商后台管理---Vue实战
  3. 使用Hash Table高速破解无线密码
  4. libvirt 介绍
  5. 【转载】windows和wls文件互通
  6. Dao DAL BIZ
  7. Internet Download Manager用假的序列号注册,IDM将退出
  8. PS磨皮插件Ultimate Retouch Panel
  9. PCIe 6.0 – 关于 PCI Express Gen6 您需要知道的一切
  10. 总结-Java分布式概念简述