SSH 和 Git
了解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的更多相关文章
- ssh配置git clone简易流程
1. 生成密钥 ssh-keygen -t rsa -C "jaynaruto@qq.com" //如果只有一对密钥,建议不要修改默认的密钥名称,即一直按回车即可 此命令会在你当前 ...
- 同一台电脑使用多个ssh连接git,出现权限不够的问题
在本地使用多个ssh连接git时出现如下错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 当一台电脑上同时使用多个ssh k ...
- 从零开始配置Ubuntu 14.04&SSH&curl&Git&MongoDB&Node.js
从零开始配置Ubuntu 14.04 从零开始配置Ubuntu 14.04,记录配置服务的过程,安装组件如下: SSH curl Git MongoDB Node.js ... Ubuntu 安装 ...
- 通过ssh连接git操作
项目又一次从svn切换到git,而且要求使用安全协议ssh连接git.不管是个人还是组织,git上只负责导入公钥,而不会帮你生成.这里先说下怎么生成这个ssh的私钥和公钥. 首先你得找到有ssh命令的 ...
- 用ssh进行git clone出现 fatal: Could not read from remote repository.
问题:在通过MobaXterm进行ssh连接的服务器上用ssh进行git clone出现 fatal: Could not read from remote repository. 解决方法:prox ...
- Github之利用SSH完成Git与GitHu 的绑定
第 1 步:生成 SSH key 在 Git Bash 中输入ssh命令,查看本机是否安装 SSH: 输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键, ...
- ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone
ssh 公钥 下载选择的时候 下拉选择 ssh 然后 git clone
- 其他:Git生成SSH、Git生成本地库、下载远程库代码 命令
1.安装Git Bash https://git-scm.com/downloads 2.鼠标右键git bash here 3.执行以下命令: ① cd ~/.ssh/ [如果没有对应的文 ...
- 在window系统下搭建基于ssh的git服务器
以下是基于window server 2012搭建的,学习搭建过程需要很多问题,找了许多文章做了一下总结. 1.所需的软件 Git for Windows: MsysGit(Git-1.7.4-pre ...
- ssh -T git@github.com出现Permission denied (publickey)
参考自:http://blog.csdn.net/sunnypotter/article/details/18948053 参考自:http://stackoverflow.com/questions ...
随机推荐
- python安装Jieba中文分词组件并测试
python安装Jieba中文分词组件 1.下载http://pypi.python.org/pypi/jieba/ 2.解压到解压到python目录下: 3.“win+R”进入cmd:依次输入如下代 ...
- Asp.net连接数据库的配置方法
1.Sqlserver数据库连接 <connectionStrings> <add name="Conn" connectionString="serv ...
- JPA、Hibernate、Spring data jpa之间的关系,终于明白了
什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支 ...
- devDependencies与dependencies (转载)
简单整理: 一.关键词解释 devDependencies用于本地环境开发 dependencies用户发布环境 devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内.通 ...
- sublime text 安装nodejs开发插件
系统:windows10nodejs版本:v6.1.14 请先配置好环境变量,这里就不说啦. 下载并设置nodejs插件 下载地址为https://github.com/tanepiper/Subli ...
- xpath语法笔记
xpath是在xml文档中查找信息的语言, 其语法整理如下: 路径表达式(选取节点) div div下的所有子节点 /div 根节点下的div //div 匹配所有的div . 当前节点 .. 父节点 ...
- TP5.0 PHPExcel 数据表格导出导入(引)
TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...
- Android沉浸式状态栏的简单实现
随着卡片式设计在Android系统的上越来越流行,比如现在早已经烂大街的沉浸式状态栏,几乎所有的主流的APP都支持沉浸式状态栏,如QQ.UC浏览器等等.所以觉得有必要学习一下,找了点资料,总结了一下, ...
- matlab练习程序(点云表面法向量)
思路还是很容易想到的: 1.首先使用KD树寻找当前点邻域的N个点,这里取了10个,直接调用了vlfeat. 2.用最小二乘估计当前邻域点组成的平面,得到法向量. 3.根据当前邻域点平均值确定邻域质心, ...
- oracle11在docker环境下的运行
目的 Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来 Ø 开发时方便测试之用 可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下: ...