开发者社区> developerguy> 正文

使用ssh连接gitHub

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

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

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
TortoiseGit连接github.com
    今天搜索一些解决方案时,无意间连接到github.com,想起去年自己也在上边申请了一个账号,却没有好好利用起来。下面记录使用软件来连接githun.com。 1、下载两个软件:msysgit,TortoiseGit 2、先安装msysgit,再安装TortoiseGit,安装过程保持默认即可。 3、为了安全,我们需要使ssh key。开始菜单--TortoiseGit--
1120 0
使用ssh-keygen生存密钥对
个人博客: alex-my.xyz      ssh-keygen具体更加详细的用法请参见“ssh-keygen中文手册”。 本处仅讲述生成过程,为了github.com服务添加安全保障。     1、在~下有一个隐藏文件夹.ssh,大家可以输入命令,cd~/.ssh,如果不存在,请建立。     2、一般我们会给生成的key添加一个注释,因此我们的命令一般是这样的:    
1088 0
MSSQL - 最佳实践 - 使用SSL加密连接
--- title: MSSQL - 最佳实践 - 使用SSL加密连接 author: 风移 --- # 摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:[如何使用对称密钥实现SQL Server列加密技术](http://mysql.taobao.org/monthly/2018/08/03/)、[使用非对称密钥实现SQL Server列加密](http:/
2644 0
特殊权限set_uid /特殊权限set_gid/特殊权限stick_bit/软链接文件/硬连接文件
  2.18 特殊权限set_uid  2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件   特殊权限set_uid(s权限用户user权限)   [root@centos_1 ~]# ls -l /usr/bin/passwd  -rwsr-xr-x.
1029 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20133 0
使用xshell连接服务器问题:ssh_exchange_identification: Connection closed by remote host
在连接服务器的时候遇到了如下的问题: 在网上查找方法: 1、让/etc/hosts.allow 和/etc/hosts.
1339 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18420 0
如何使用SSH登录Linux服务器?
使用SSH登录Linux服务器是最基础的运维,那么ssh登录linux命令是什么?云服务器吧分享SSH登录到ECS云服务器的方法: SSH登录Linux服务器 首先获取Linux服务器的公网ip,不清楚可以联系服务器商。
6014 0
+关注
developerguy
A code cleanliness code farmers, A programmer concentrate on elegant design, A want to do with the product architect
1663
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载