github每次pull/push代码时要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码用以验证用户是否为合法用户,而ssh是一种安全的传输模式,可以代替用户的这一“输入账号密码”的行为来验证用户。

github的俩种操作方式

  1. https

    可以随意克隆github上的项目,而不管是谁的;在pull/push的时候是需要验证用户名和密码的

  2. ssh

    克隆者必须是拥者或管理员,且需要先添加 SSH key ,否则无法克隆。在pull/push的时候不再是验证用户名和密码,而是通过验证ssh的方式来验证用户。

ssh(安全外壳协议)

定义:

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。 --百度百科

功能:

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。
所谓“中间人”的攻击方式,

客户端——》冒充的服务器(中间人)——》真正的服务器

就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器
服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。 --百度百科

使用步骤

  1. 查看是否已经存在ssh秘钥

    打开git bash,输入

    $ cd ~/.ssh
    $ ls

    如果,提示不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。

  2. 生成ssh秘钥

    $ ssh-keygen -t rsa -C "your_email@example.com"

    代码参数含义:

    • -t 指定密钥类型,默认是 rsa ,可以省略。
    • -C 设置注释文字,比如邮箱。
    • -f 指定密钥文件存储文件名。

    根据提示,需要指定文件位置和密码,如果是你足够放心,其实都可以直接回车,不需要什么密码。执行完以后,可在/c/Users/you/.ssh/路径下看到刚生成的文件:id_rsa和id_rsa.pub。即公钥和私钥。

  3. 在GitHub账户中添加公钥

    • 登录你的github,头像处下拉框选择settings。
    • 进入设置页后点击侧边栏的SSH and GPG keys按钮。
    • 点击New SSH key,title可以任意填,并且将上一步骤生成的id_rsa.pub的内容复制到这里的key输入框中。
  4. 确认

    $ ssh -T git@github.com

    在这里我收到一个提示:

    Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.

    直接回车,最后看到这个就说明大功告成:

    Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

遇到的问题

添加完公钥后,使用小乌龟(TortoiseGit)pull代码时报错:

no supported authentication methods aviaible(server sent:publickey)

查了一下,发现是因为TortoiseGit和Git的冲突 我们需要把TortoiseGit设置改正如下。

  • 右键TortoiseGit -> Settings -> Network
  • 将SSH client指向~\Git\usr\bin\ssh.exe(Git安装路径下)

http://www.cnblogs.com/yzg1/p/5773362.html

使用ssh连接gitHub相关推荐

  1. win10配置SSH连接Github

    win10配置SSH连接Github 1. 条件 2. 办法 1. 条件 Github账号 Win10已安装Git 2. 办法 打开Git Bash 查看有没有ssh设置 $ ls .ssh/ 空空如 ...

  2. SSH服务详解(七)– SSH 连接 Github

    SSH 连接 Github SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 S ...

  3. 在Mac上使用SSH连接GitHub

    在Mac上使用SSH连接GitHub 先打开终端 1.在Git中设置用户名: git config --global user.name "你的名字" 例如: git config ...

  4. 使用 SSH 连接 GitHub

    目录 使用 SSH 连接 GitHub 关于 SSH 检查现有 SSH 密钥 生成新的 SSH 密钥并把它添加到 ssh 代理中 关于生成 SSH 密钥 生成新的 SSH 密钥 将 SSH 密钥添加到 ...

  5. window下配置SSH连接GitHub、GitHub配置ssh key

    此经验分两部分: 第一部分介绍:在windows下通过msysGit(Git for windows.Git Bash)配置SSH Keys连接GitHub. 第二部分介绍:在GitHub上创建仓库, ...

  6. git连接通过ssh连接github

    1.首先产生一个rsa的私钥和公钥 ssh-keygen -t rsa -C "15950093214@163.com"  //你的github邮箱帐号 执行完该语句之后,会在默认 ...

  7. windows10使用多套public key pair进行SSH连接github的配置文件

    在.ssh文件夹下创建一个config文件,内容: 配置github.com Host github.com HostName github.com IdentityFile C:\Users\i04 ...

  8. 连接GitHub提示远程主机关闭连接

    连接GitHub提示远程主机关闭连接 发现问题 排查问题 反思 错误代码:kex_exchange_identification:Connection closed by remote host 发现 ...

  9. 【22/03】ssh/SSH/ssh key/github/vscode/error:1058/深入浅出【一遍必懂】

    我知道大部分介绍可能看的云里雾里的,我会在下面实际操作中,讲解每一条命令的写法.以及为什么要写,大家应该就可以大致了解SSH秘钥对是什么意思,又怎么使用了. 整合.参考了以下大佬的思想和简介, 这几个 ...

最新文章

  1. .htm .html .shtml的区别
  2. 独家专访:SequoiaDB 3.0 版本正式发布!协议级完整兼容MySQL!
  3. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引
  4. navicat创建数据库后显示图标灰色,右键后无法新建数据库
  5. VBS脚本获取安全标识符SID(Security Identifiers)的方法
  6. python初始化方法对应的变量是全局变量嘛_在Python中初始化全局变量的正确方法...
  7. 数据返回nan_数据处理教程
  8. 工作分析文献综述_学术知识| 如何撰写文献综述
  9. Linux 如何限制用户的磁盘使用量 -- quota
  10. 项目maven依赖成功,但编译一直报错:引用项目的类路径找不到
  11. 衬线字体、无衬线字体、等宽字体的定义和LaTeX命令以及text系列与family系列、series系列、shape系列的区别和联系
  12. Git回滚到某个commit
  13. edm邮件直投_EDM邮件直投专家_EDM邮件直投专家官方版下载 - 邮件处理 - 绿软家园...
  14. 如何在PowerPoint中更改整个演示文稿的格式
  15. poj 1321 排兵布阵问题 dfs算法
  16. 笔记本计算机屏幕亮度暗,笔记本屏幕100%还是暗,win10电脑亮度调节失灵
  17. 一份Yann LeCun等16个顶级数据科学家给新人的建议
  18. C++代码静态分析与优化(7)_vera++
  19. 尚硅谷python部分学习笔记
  20. 如何将弹幕嵌入视频中,合成一个文件

热门文章

  1. 字节一面:如何从 100 亿 URL 中找出相同的 URL?
  2. 不得不了解系列之限流
  3. 教你玩转 统一异常处理
  4. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验
  5. 有人说 Maven 很简单,我却被 伤害 过
  6. 内涵! 程序员才懂的动图... | 节日出行注意安全~~
  7. 数据分析索引总结(中)Pandas多级索引
  8. 第8期Datawhale组队学习计划
  9. 全网刷爆!B站Up主何同学带火这只A股:最硬核桌子,苹果也做不到!
  10. 靠拿奖学金完成学业后,博士生为女友放弃年薪30万工作选择留校任教