利用 SSH 完成 Git 与 GitHub 的绑定
在「史上最简单的 GitHub 教程」中,我们已经对 GitHub 有了一定的了解,包括创建仓库、拉分支,或者通过Clone or download
克隆或者下载代码;我们也下载并安装了 Git,也了解了其常用的命令。But,无论是 GitHub,还是 Git,我们都是单独或者说是独立操作的,并没有将两者绑定啊!也就是说,我们现在只能通过 GitHub 下载代码,并不能通过 Git 向 GitHub 提交代码。
因此,在本篇博文中,我们就一起完成 Git 和 GitHub 的绑定,体验通过 Git 向 GitHub 提交代码的能力。不过在这之前,我们需要先了解 SSh(安全外壳协议),因为在 GitHub 上,一般都是通过 SSH 来授权的,而且大多数 Git 服务器也会选择使用 SSH 公钥来进行授权,所以想要向 GitHub 提交代码,首先就得在 GitHub 上添加 SSH key
配置。在这里,如果大家对 SSH 还不太了解,那么建议先阅读博主之前写的文章「详述 SSH 的原理及其应用 」,从而对 SSH 有一个大致的了解。
第 1 步:生成
SSH key
我们要想生成SSH key
,首先就得先安装 SSH,对于 Linux 和 Mac 系统,其默认是安装 SSH 的,而对于 Windows 系统,其默认是不安装 SSH 的,不过由于我们安装了 Git Bash,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh
命令,查看本机是否安装 SSH:
如上图所示,此结果表示我们已经安装 SSH 啦!接下来,输入ssh-keygen -t rsa
命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa
和id_rsa.pub
,即密钥id_rsa
和公钥id_rsa.pub
. 对于这两个文件,其都为隐藏文件,默认生成在以下目录:
- Linux 系统:
~/.ssh
- Mac 系统:
~/.ssh
- Windows 系统:
C:Documents and Settingsusername\.ssh
- Windows 10 ThinkPad:
C:Usersthink.ssh
密钥和公钥生成之后,我们要做的事情就是把公钥id_rsa.pub
的内容添加到 GitHub,这样我们本地的密钥id_rsa
和 GitHub 上的公钥id_rsa.pub
才可以进行匹配,授权成功后,就可以向 GitHub 提交代码啦!
第 2 步:添加
SSH key
如上图所示,进入我们的 GitHub 主页,先点击右上角所示的倒三角▽
图标,然后再点击Settins
,进行设置页面;点击我们的头像亦可直接进入设置页面:
如上图所示,进入Settings
页面后,再点击SSH and GPG Keys
进入此子界面,然后点击New SSH key
按钮:
如上图所示,我们只需要将公钥id_rsa.pub
的内容粘贴到Key
处的位置(Titles
的内容不填写也没事),然后点击Add SSH key
即可。
第 3 步:验证绑定是否成功
在我们添加完SSH key
之后,也没有明确的通知告诉我们绑定成功啊!不过我们可以通过在 Git Bash 中输入ssh -T git@github.com
进行测试:
如上图所示,此结果即为Git 与 GitHub 绑定成功的标志。
最后,附上博主的 GitHub 账号,欢迎大家
Follow
:维C果糖
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(二)之分库分表路由
- [喵咪开源软件推荐(3)]全球IP库-GeoLite2-City
- [喵咪MQ(3)]RabbitMQ集群安装配置
- 动态实现指定图片半透明及鼠标事件
- JVM杂谈之JIT
- 熔断器 Hystrix 源码解析 —— 执行结果缓存
- [喵咪MQ(2)]RabbitMQ单机模式使用
- [喵咪MQ(1)]RabbitMQ简单介绍准备工作
- Dubbo 源码解析 —— Directory
- [喵咪大数据]Hbase搭建和基本使用
- CSS:模拟Windows窗口及DIV居中
- [喵咪大数据]Hive2搭建和基本操作
- [喵咪大数据]Hadoop节点添加下线和磁盘扩容操作
- [喵咪大数据]Hadoop集群模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用GithubActions发布Vue网站到GithubPage
- 3.QOpenGLWidget-通过着色器来渲染渐变三角形
- 特斯拉大半夜「见鬼」!空无一人的路上,它却看见「幽灵」秒刹车
- .NET 异步详解
- 他被导师半夜敲门叫醒:你得诺贝尔奖了!还曾为5G频谱拍卖设计方案,担任谷歌IPO咨询顾问
- C#实现——十大排序算法之选择排序
- CSS高级技巧 CSS用户界面样式
- 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建
- Sentinel断路器与熔断降级【源码笔记】
- 数据分析、数据挖掘基础:描述统计学基础知识分享!
- 前端开发必会的HTML/CSS硬知识
- 前端开发必会的HTML/CSS硬知识 (二)
- 移动web开发之rem布局
- less 基础
- 【淘宝】实现一个函数用来解析 URL 的 querystring