SSH 和 Git

本文详细介绍了SSH协议的非对称加密原理,重点讲解了如何使用OpenSSH生成RSA密钥对,并将其应用于Git远程仓库的身份验证。此外,还介绍了如何通过Putty进行SSH认证代理,以及常见错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

了解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

转载于:https://www.cnblogs.com/zhuwansu/p/9988251.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值