Git的SSH密钥配置

1: https和ssh的区别

很多朋友在用github管理项目的时候,都是直接使用https url 克隆到本地,当然也有有些人使用ssh url 克隆到本地。
使用https url克隆对初学者来说会比较方便 ,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了。而使用ssh url克隆却需要在克隆之前先配置和添加好ssh key

因此,如果你想要使用ssh url克隆的话,你必须是这个项目的拥有者(项目成员),否则你是无法添加ssh key的。

区别一

https :可以随意克隆github上的项目,不管是谁的项目
ssh : 你必须是你要克隆的项目的拥有者或管理员,且需要先添加ssh key,否则无法克隆

区别二

https :在push 的时候是需要验证用户名和密码 的;
ssh : 在push 的时候,是不需要输入用户名的,如果配置ssh key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

2: SSH密钥类型

ED25519

《Practical Cryptography with Go》一书表明,ED25519密钥比RSA密钥更安全、性能更高。

OpenSSH 6.5在25519年引入了ED2014 ssh密钥,它们应该在大多数操作系统。

RSA

现有文档表明,ED25519比RSA更安全。

如果使用RSA密钥,美国国家科学技术研究院在出版物800-57 第3部分(PDF)中建议密钥大小至少为2048位。默认密钥大小取决于您的版本

有关详细信息,请查看已安装命令的页面 ssh-keygenmanssh-keygen

DSA

(在GitLab 11.0中已弃用)

ECDSA

(如Go的实用密码学中所述,与DSA相关的安全问题也适用于ECDSA)

管理员可以限制允许的密钥及其最小长度

3:实操演示

设置user name和email

首先在使用SSH之前要先设置全局范围的用户名和邮箱

bash 复制代码
# 查看配置
git config --list
git config --global -l
git config -l
#git status
git config --global user.name "jock"
git config --global user.email "xxx@antcode.com"

创建SSH Key

1: 创建前先检查是否存在ssh key

检查方式一: 在windows下查看[c盘->用户->自己的用户名->.ssh下是否有id_rsaid_rsa.pub 文件,如果没有需要手动生成
检查方式二: git 命令窗口运行 ls -al ~/.ssh

看是否存在id_rsaid_rsa.pub,或者类似但秘钥类型不同的文件,如果存在,说明已经有ssh Key. 没有的话,创建新的ssh key
或者直接删除旧的 ssh rm -rf ~/.ssh/* 输入之后会出现一个提问选择,输 y,确认即可

2:创建ssh key

键入ssh-keygen -t 密钥类型 -C 可选注释

我们选择2048位RSA

bash 复制代码
ssh-keygen -t rsa -b 2048 -C "xxx@antcode.com"

连按三次Enter键得到下面:

bash 复制代码
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Mr.Yang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Mr.Yang/.ssh/id_rsa.
Your public key has been saved in /c/Users/Mr.Yang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:zA6wNJrFB6NcqS6eBog/AHlzQuvFjYpG759Yhh1lWGI xxxxxx@xxxxx.xxx(上面自己的邮箱)
The key's randomart image is:
+---[RSA 2048]----+
| +E . |
| ..+oo+ |
| oo+*+.o |
|o.*===+o |
|==+*... S |
|B.+.o .o |
|++o. + . |
| +o.+ . |
|. o.o |
+----[SHA256]-----+

随后在 .ssh 目录下得到了两个文件:id_rsa(私有秘钥)id_rsa.pub(公有密钥)

3: 将rsa.pub里的秘钥添加到远端

打开远程代码仓库,点击个人资料--->账户设置--->SSH密钥 ,把生成好的公钥id_rsa.pub放进 key输入框中 ,再为当前的key起一个title来区分每个key,title名称随便命名。现在你就可以通过ssh方式clone 项目了 ,并且每次push都不需要重新输入用户名

SSH密钥生成结束后,你可以在SSH目录下看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过文本编辑器或cat命令来查看id_rsa.pub公钥信息

相关推荐
阿梦Anmory1 天前
Ubuntu配置代理最详细教程
linux·运维·ubuntu
呉師傅1 天前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
heartbeat..1 天前
JVM 性能调优流程实战:从开发规范到生产应急排查
java·运维·jvm·性能优化·设计规范
小Tomkk1 天前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊1 天前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
消失的旧时光-19431 天前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑1 天前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源1 天前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
Trouvaille ~1 天前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
芷栀夏1 天前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann