了解SSH

SSH 以非对称加密实现身份验证。较常用的非对称加密有 RSA。

两种加密过程:

  1、通过用户名密码访问服务器,即使传输的数据是加密的也可能会被劫持到不信任的服务器,泄露用户名和密码。

  2、通过将公钥(用来加密和认证客户端)放到信任的服务器上来和服务器传输密文。

两张丑图大概解释一下。

可以明显看到第二图的漏洞,劫持 公钥后就可以肆无忌惮的发送信息给服务器了,所以一般情况下会有一个认证中心服务器,客户端需要持有认证中心的公钥来发送密文,认证中心再持有所有服务器的公钥来分发请求。

参考:维基百科SSh

使用 OpenSSH 和 Putty。

使用 OpenSSH 生成用于git 的密钥。

打开 git bash

ls -al ~/.ssh    列出目录 或直接打开 C:\Users\电脑用户名\.ssh

-A 列示所有条目,除了 .(点)和 ..(点-点)。
-a 列示目录中所有条目,包括以 .(点)开始的条目。
L 列示链接引用的文件或目录内容。这是缺省操作。后跟符号链接。如果使用 -l 选项,-N 选项就成为缺省值,不后跟符号链接。当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。
-l (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。如果文件是特殊文件,大小字段包含主要和次要设备数目。如果最近一次修改时间大于六个月之前,时间字段以 月份 日期 年份的格式显示,然而六个月内修改的文件以 月份 日期 时间 的格式显示。

如果文件是符号链接,打印所链接到的文件的路径名,其前跟 ->。显示符号链接的属性。-n-g、和 -o 标志覆盖 -l 标志。

ssh-keygen -t rsa -C "Comment" 生成rsa密钥对

Comment 可以填你的邮件或日期等其他注释

ssh-add ~/.ssh/id_rsa 添加密钥到ssh-agent缓存中

如果失败可以先执行一下 ssh-agent 命令。

ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,注意这是临时的。

手动拷贝公钥(id_rsa.pub 文件的内容)到服务器上 pbcopy < ~/.ssh/id_rsa.pub

github 或 gitlab 等账户设置里 ssh 选项 add key 就行了。

输入 ssh git@github.com 测试。

使用 git 工具克隆代码

如果没有成功会提示:

Disconnected: No supported authentication methods available (server sent: publickey)

sourcetree、Git Extensions 、命令行工具都行。

Putty 认证代理

下载 Git Extensions 最新版 安装的时候勾选 putty。

功能简介:生成密钥对(虚拟文件)、转换 OPenSSh 密钥对、认证代理(ssh-agent 、ssh-add)。

其他类似。

补充1、每次要打开认证代理并添加私钥才能与服务器交互

比如git 推送的时候打开了代理没有添加私钥 提示

fatal: protocol error: bad line length character: Usin

SSH 和 Git的更多相关文章

  1. ssh配置git clone简易流程

    1. 生成密钥 ssh-keygen -t rsa -C "jaynaruto@qq.com" //如果只有一对密钥,建议不要修改默认的密钥名称,即一直按回车即可 此命令会在你当前 ...

  2. 同一台电脑使用多个ssh连接git,出现权限不够的问题

    在本地使用多个ssh连接git时出现如下错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 当一台电脑上同时使用多个ssh k ...

  3. 从零开始配置Ubuntu 14.04&SSH&curl&Git&MongoDB&Node.js

    从零开始配置Ubuntu 14.04 从零开始配置Ubuntu 14.04,记录配置服务的过程,安装组件如下: SSH curl Git MongoDB Node.js ... ​ Ubuntu 安装 ...

  4. 通过ssh连接git操作

    项目又一次从svn切换到git,而且要求使用安全协议ssh连接git.不管是个人还是组织,git上只负责导入公钥,而不会帮你生成.这里先说下怎么生成这个ssh的私钥和公钥. 首先你得找到有ssh命令的 ...

  5. 用ssh进行git clone出现 fatal: Could not read from remote repository.

    问题:在通过MobaXterm进行ssh连接的服务器上用ssh进行git clone出现 fatal: Could not read from remote repository. 解决方法:prox ...

  6. Github之利用SSH完成Git与GitHu 的绑定

    第 1 步:生成 SSH key 在 Git Bash 中输入ssh命令,查看本机是否安装 SSH: 输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键, ...

  7. ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone

    ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone

  8. 其他:Git生成SSH、Git生成本地库、下载远程库代码 命令

    1.安装Git Bash https://git-scm.com/downloads 2.鼠标右键git bash here 3.执行以下命令: ①   cd ~/.ssh/    [如果没有对应的文 ...

  9. 在window系统下搭建基于ssh的git服务器

    以下是基于window server 2012搭建的,学习搭建过程需要很多问题,找了许多文章做了一下总结. 1.所需的软件 Git for Windows: MsysGit(Git-1.7.4-pre ...

  10. ssh -T git@github.com出现Permission denied (publickey)

    参考自:http://blog.csdn.net/sunnypotter/article/details/18948053 参考自:http://stackoverflow.com/questions ...

随机推荐

  1. 南大算法设计与分析课程OJ答案代码(1)中位数附近2k+1个数、任意两数之和是否等于给定数

    问题1 用来测试的,就不说了 问题2:中位数附近2k+1个数 给出一串整型数 a1,a2,...,an 以及一个较小的常数 k,找出这串数的中位数 m 和最接近 m 的小于等于 m 的 k 个数,以及 ...

  2. does not support SSL connections

    语言:C# 开发工具:Visual Studio 2017 问题场景介绍: nuget引用的MySql.Data版本是6.10.5,MySQL的数据库连接串如下: Server=xxx;Databas ...

  3. [转]php,使用Slim和Medoo搭建简单restful服务

    本文转自:https://www.jianshu.com/p/32b6d0284d97 关于rest和orm框架的组合使用,几年前我就写过使用Slim+Notorm来搭建restful服务,不过看到N ...

  4. ASP.NET Core入门

    一.搭建开发环境 在Windows平台下,开发.NET Core 程序需要安装如下内容: 1. .NET Core runtime 2. Visual Studio 2015 with Update ...

  5. 从零开始学安全(十九)●PHP数组函数

    $temp= array(1,2,3,,,,) 创建一个数组赋值给temp $id=range(1,6,2);     成长值   1到6  跨度为2  就是3个长度数组 也可以是字符“a” &quo ...

  6. 扩展RBAC用户角色权限设计方案(转载)

    扩展RBAC用户角色权限设计方案  来源:https://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html https://blog.csd ...

  7. 爬虫之re数据提取的使用

    本文将业务场景中最常用的几点实例,给大家列举出来,不常见的不再一一赘述.  使用urllib库可以模拟浏览器发送请求获得服务器返回的数据,下一步就是把有用的数据提取出来.数据分为两种形式:结构化和非结 ...

  8. 【转】为什么要使用ModelDriven

    ---恢复内容开始--- package cn.com.leadfar.struts2.actions; public class User { private int id ; private St ...

  9. java框架之spring

    一.HelloWorld程序 导入四个核心包(core.beans.expression.context)和一个logging的包: 写一个类并在 xml 中配置相应的bean(两个重要属性 id 和 ...

  10. 纯CSS+HTML实现checkbox的思路与实例

    checkbox应该是一个比较常用的html功能了,不过浏览器自带的checkbox往往样式不怎么好看,而且不同浏览器效果也不一样.出于美化和统一视觉效果的需求,checkbox的自定义就被提出来了. ...