注:本文来源于 破男孩 博客(http://www.cnblogs.com/ayseeing/p/3572582.html)能切实解决问题。

很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地。然而,为什么绝大多数人会使用https url克隆呢?

这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了。而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key 。

因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。

生成多个公钥请点击:http://www.cnblogs.com/ayseeing/p/4445194.html

https 和 SSH 的区别:

1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。

2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

在 github 上添加 SSH key 的步骤:

1、首先需要检查你电脑是否已经有 SSH key

运行 git Bash 客户端,输入如下代码:

$ cd ~/.ssh
$ ls

这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。

2、创建一个 SSH key

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

代码参数含义:

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

以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),

当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如:

Enter passphrase (empty for no passphrase):
# Enter same passphrase again:

接下来,就会显示如下代码提示,如:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。

3、添加你的 SSH key 到 github上面去

a、首先你需要拷贝 id_rsa.pub 文件的内容,你可以用编辑器打开文件复制,也可以用git命令复制该文件的内容,如:

$ clip < ~/.ssh/id_rsa.pub

b、登录你的github账号,从又上角的设置( Account Settings )进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。

c、点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。当然,上面的 Title 所对应的输入框你也可以输入一个该 SSH key 显示在 github 上的一个别名。默认的会使用你的邮件名称。

4、测试一下该SSH key

在git Bash 中输入以下代码

$ ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 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 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

当然如果你密码输错了,会再要求你输入,知道对了为止。

注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。

密码正确后你会看到下面这段话,如:

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

如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

如果你有什么疑问或指正,请留言。

产考文档:https://help.github.com/articles/generating-ssh-keys

转载于:https://www.cnblogs.com/gaosheng-221/p/6126951.html

github设置添加SSH(转载自:破男孩)相关推荐

  1. github设置添加SSH

    https 和 SSH 的区别: 1.前者可以随意克隆github上的项目,而不管是谁的:而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆. 2.http ...

  2. 在 github 上添加 SSH key 的步骤

    版权声明:个人学习笔记,不喜勿喷,文章转载请标明出处,谢谢! <a class="copy-right-url" href=" https://blog.csdn. ...

  3. Linux添加SSH Key到Github账户

    Linux添加SSH Key到Github账户 Adding a new SSH key to your GitHub account 本文在Linux下使用Github CLI添加SSH Key到G ...

  4. github 使用之--ssh配置(及解决ssh_add 报错)

    网上与很多blog指导怎么生成ssh秘钥与github账户绑定,这里我参考的是: http://blog.csdn.net/xsckernel/article/details/8563993 gith ...

  5. 从0开始学习 GitHub 系列之「04.向GitHub 提交代码」----转载自stormzhang 原创文章

    之前的这篇文章「从0开始学习 GitHub 系列之「Git速成」」相信大家都已经对 Git 的基本操作熟悉了,但是这篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作 ...

  6. windows系统如何添加ssh key到github

    我自己的电脑安装了git后,从来没有用过,今天偶然用了一次,发现不能pull到东西,报错说我没有权限,于是我网上搜索了一下,应该是我没有配置ssh key的原因,相信很多人都有和我一样的经历吧,这里呢 ...

  7. linux+添加git+ssh+keys,为github帐号添加SSH keys(Linux和Windows)(示例代码)

    一.Linux增加ssh keys方法: 使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的cofface_recovery项目:[email pr ...

  8. 为github帐号添加SSH keys

    使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的beagleOS项目:git@github.com:DamonDeng/beagleOS.git) ...

  9. GitHub添加SSH key

    1.打开Git Bash命令行窗口 2.检查是否已有SSH 如果没有,会返回如下信息,继续第三步创建SSH $ cd ~/.ssh bash: cd: /c/Users/Him/.ssh: No su ...

最新文章

  1. 手机淘宝以秒杀抢滩校园市场
  2. 服务器对程序员来说意味着什么,此文带你来了解
  3. nyoj36最长公共子序列 动态规划
  4. 如何将 DateTime 转成 UnixTime ?
  5. [零基础学JAVA]Java SE应用部分-28.Java IO操作(02)
  6. c语言作业统计字符,C语言统计字符数(示例代码)
  7. eclipse 返回上一个选项卡、注释及取消注释 、大写变小写、 光标跳到下一行快捷键
  8. cat的实用技巧 cat>>/etc/profile<<EOF
  9. 为什么不建议将Abaqus汉化使用?
  10. linux 核显驱动程序,在Ubuntu系统上安装英特尔核显驱动安装器的方法
  11. 博客优化--ping让博客文章发表就有可能被收录
  12. 优质的石材 石头VRay材质球素材推荐,不容错过
  13. 狂神说笔记——Java SE基础01
  14. Java分割PDF文件(itextpdf)
  15. interProScan的使用
  16. easyexcel 设置标题_Alibaba easyExcel对Excel操作之复杂标题处理
  17. c语言负数与正数判断大小,c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与负数的平均值...
  18. kali虚拟机root密码错误
  19. 前后端分离项目,vue+uni-app+php+mysql外卖点餐小程序系统 开题报告
  20. 全干式光缆与普通光缆的区别

热门文章

  1. Python并行编程(七):多进程的基本使用和与多线程的差异
  2. Docker系列教程15-Docker容器网络
  3. 人工智能语音交互技术与应用
  4. Linux运维课程 第一阶段 重难点摘要(一)网络基础
  5. Linux 2 unit1 虚拟机,自动安装
  6. Lua环境配置和工具介绍
  7. 如何在Cocos2D游戏中实现A*寻路算法(三)
  8. Android AsyncTask Download
  9. asp生成和导出excel和word数据源码和代码,简单好用(已经测试可以用)
  10. Struts2之ajax初析