平常使用git时因为用了https的方式,所以经常要输入密码,其实我们是可以通过这个公钥连接github git.oschina.net等服务器,这样可以省去了我们输入用户名密码这么一个步骤了。

1.生成公钥--- ssh-keygen

无论是什么系统要使用git,那么都需要安装git工具,这个是去官网下载,安装完成后都会有了这么一个命令--- ssh-keygen,这个命令就是用来生成公钥的,生成公钥有什么好处在前面就已经说了。

这个命令使用是很简单的

➜  ~  ssh-keygen

直接运行,一路确定(按回车键)就可以了,这样就生成了了公钥,需要注意的是在执行的过程中会提示你文件保存的路径,在那一个步骤你要留意这个保存的路径。

完成后,文件保存的路径,在linux中一般是 "/home/subying/.ssh/",windows下一般是"c:\用户\subying\.ssh\" 这里的subying是我登录的用户名,你会在里面看到一个名为'id_rsa.pub'的文件。最正确就是前面说的在生成过程中留意那个路径,如果没有留意怎么办?呵呵,再生成一次...

2.上传到服务器(网站github\git.oschina.net等)

生成公钥后,就是要上传到服务器了,我们常用的git服务应该在是github git.oschina.net这样的网站,那么这些网站的设置都是类似的。

首先是找到个人设置里面,在左侧找到ssh key(ssh 公钥)这样的菜单,点击进去进行设置,下面给出github git.oschina.net的连接

https://github.com/settings/ssh (github)

http://git.oschina.net/profile/sshkeys  (git.oschina.net)

设置的时候一般是设置标题和内容,标题可以自己取一个,那么内容就是刚才生成的那个id_rsa.pub文件的内容,可以用编辑器、记事本这样的工具打开,复制。

步骤如下截图:

3.验证是否成功

验证的方式就是使用命令 'ssh -T git@网站url',那么要判断我们上面设置的github git.oschina.net,可以分别执行 'ssh -T git@github.com'  'ssh -T git@git.oschina.net' ,效果如下

➜  nodejs-download-website-Image git:(master) ssh -T git@github.com
The authenticity of host 'github.com (192.30.252.130)' 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
Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts.
Hi subying! You've successfully authenticated, but GitHub does not provide shell access.
➜  nodejs-download-website-Image git:(master) ssh -T git@git.oschina.net
The authenticity of host 'git.oschina.net (124.202.141.153)' can't be established.
ECDSA key fingerprint is 27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'git.oschina.net,124.202.141.153' (ECDSA) to the list of known hosts.
Welcome to Git@OSC, subying!

成功后都会看到一些欢迎的信息,比如github的'Hi subying! You've successfully authenticated',git.oschina.net的'Welcome to Git@OSC, subying!'  这里的subying是我的账号名。

4.将https改成ssh

做完上面的步骤后,并不是说就可以clone都不需要输入用户名和密码了,记住的是这个是ssh的公钥,所以clone的时候要用ssh的url而不是https的url,否则你用了https的url还是需要输入用户名和密码的。

那么如果之前已经用了https了,现在要怎么修改呢?用命令'git remote set-url origin 项目的sshurl',比如我的就是这样'git remote set-url origin git@git.oschina.net:subying/nodejs-download-website-Image.git',或者是直接修改了项目里面.git文件中的config文件,把https的url改成ssh的url就可以了。

使用了ssh公钥后就方面了很多,希望给像我一样的朋友一些帮助。

本文同步到我的个人博客 http://www.subying.com/archives/119.html

使用sshkey连接github等服务器的更多相关文章

  1. Git详细教程之创建本地仓库和连接Github仓库

    首先要知道不只有代码,任何类型的文件都可以进行版本控制,版本控制很重要的一个特性就是你可以随时修改,比如git会记录你的任何操作,如果你想要回退到任何一个历史操作,你可以通过git轻松达到. 本地仓库 ...

  2. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  3. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  4. Sublime Text 中使用Git插件连接GitHub

    sublime Text的另一个强大之处在于它提供了非常丰富的插件,可以帮助程序员来适合大多数语言的开发.这些插件通过它自己的Package Controll(包管理)组件来安装,非常方便.一般常用的 ...

  5. Git学习之连接GitHub远程仓库

    在看此教程之前电脑上应该已安装好git,并且配置好基本信息,Git新手请从头开始. 第1步:创建SSH Key 在用户主目录下(Mac系统是在用户主目录下,可通过命令ll -a查看,Windows下自 ...

  6. Mac下git通过SSH进行免密码安全连接github

    Git——The stupid content tracker(傻瓜内容跟踪器) Git是Linux的缔造者Linus Torvalds为了帮助管理Linux内核源码而开发的一款免费.开源的分布式版本 ...

  7. 构建C1000K的服务器(2) – 实现百万连接的comet服务器

    转自:http://www.ideawu.net/blog/archives/742.html 这是关于 C1000K 序列文章的第二篇, 在前一篇文章 构建C1000K的服务器(1) – 基础 中, ...

  8. 使用SSH密钥连接Github

    使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己 的密码来保证安全操作,还有神奇的一招可以“不用输入密码”哦. ...

  9. 在有跳板机的情况下,SecureCRT自动连接到目标服务器

    为了服务器的安全,运维人员经常会要求我们先登录到跳板机,然后再SSH连接到目标服务器.但是这样是很繁琐的,每次在SecureCRT创建一个连接,都需要输入SSH命令,然后输入密码. 下面的方法可以实现 ...

随机推荐

  1. 将url动态转换成二维码插件 - 兼容IE8

    插件地址  http://static.runoob.com/assets/qrcode/qrcode.min.js ,网页直接打开,然后ctrl+s保存到本地. <!DOCTYPE html& ...

  2. JS实现一个基于对象的链表

    JS实现一个基于对象的链表 /*JS实现一个基于对象的链表*/ function Node(element){ this.element = element;//节点存储的元素 this.next = ...

  3. Install MySql on CentOS

    Installing & Configuring MySQL Server This Howto will show you how to install MySQL 5.x, start t ...

  4. Mime、base64编码

    第一部分 在阮一峰老师的博客中,是这样介绍Mime的: MIME的全称是"Multipurpose Internet Mail Extensions",中译为"多用途互联 ...

  5. Flume搭建及学习(基础篇)

    转载请注明原文出处:http://www.cnblogs.com/lighten/p/6830439.html 1.简介 该文主要是翻译官方的相关文档,源地址点击这里.介绍一下Flume的一些基本知识 ...

  6. 【Ubuntu】使用记录

    Vim 设置自动折行 :set wrap Maven 安装 去官网下载maven安装包 解压maven, 在主目录下的.bashrc中添加 export PATH="$PATH:{your_ ...

  7. 目录打散-hash算法

    前几篇说了文件上传,都是上传到了WebRoot下的up目录,这样是不行的,文件多了性能就不行了.文件一般都是分目录存放的,这里讲建目录的一种算法.先看结果,经过本算法建的目录,结构是这样的,还以up目 ...

  8. 【树】Serialize and Deserialize Binary Tree

    题目: Serialization is the process of converting a data structure or object into a sequence of bits so ...

  9. postman—集成到jenkins

    前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 将postman导出的脚本,持续集成到 ...

  10. scss 入门

    scss 入门 1. scss 引入其他文件 引入其他 .scss 文件 @import 'index.scss' 这样的话,文件在编译后,会自动把引入的文件和当前文件合并为一个. scss 文件 引 ...