ssh配置(一、GitLabGitHub)

news/2024/5/17 16:26:13 标签: ssh, gitee, github, 配置

ssh_1">一. 为什么配置ssh

  • 使用 ssh 克隆项目,更加安全方便。 git clone 项目时一般使用两种协议 httpsssh

二. 原理的通俗解释

  1. ssh 解决的问题是登录时的用户身份验证问题,默认使用 RSA(也支持其他算法: RSA、DSA、ECDSA、EdDSA、Ed25519 ,它们在效率,安全性上有所区别)。
  2. 完整的流程:
  • 我们首先在本地生成一对公私钥(如果需要多对秘钥分别用于不同平台 gitlab, github, gitee 等,可以生成多对;也可以多个平台使用一对秘钥),
  • 私钥交给秘钥管理器 ssh-agent
  • 公钥配置到目标网站 gitlab, githubgitee
  • 这样在登录指定服务器时,秘钥管理器就会使用秘钥自动验证用户身份。
  1. 建议
  • 使用两对秘钥,一个用于公司的gitlab,一个用于自己的 gitee, github

三. 相关文件

  • 所有 ssh 相关的文件都在 ~/.ssh/ 下,本次用到的相关文件
    1. id_rsaid_rsa.pub :默认一对公私钥的名字,可以有多对,使用命令 ssh-keygen 生成。
    2. known_hosts :当替换了原有平台的公钥时,需要去这个文件里删除对应平台的 host 记录。

四. 关键步骤

  1. 生成秘钥对,可以检查目录 ~/.ssh/ 下是否有秘钥对,如果没有则重新生成。
# 给 邮箱zhangsan@qq.com 或 用户lisi 生成公私钥
# -t 参数:指定算法 ed25519,更加高效和安全
# -C 参数:指定公私钥中的注释,一般用邮箱或用户名,不影响使用
ssh-keygen -t ed25519 -C "zhangsan@qq.com"
ssh-keygen -t ed25519 -C "lisi"
# 输入命令后,如果不需要密码的话,连续3个回车。最后得到了两个文件:id_rsa和id_rsa.pub。
# 如果需要指定当前秘钥给 gitlab 平台,在第一次回车后,复制提示的路径,修改 id_rsa 为 gitlab_id ,
# 则会得到 gitlab_id 和 gitlab_id.pub 两个文件。
  1. 添加私钥到 ssh-agent 私钥管理器。
# 查看当前已经添加的 秘钥
ssh-add -l
# 添加指定的 秘钥,不要添加公钥
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/gitlab_id
# 如果发现本地 ssh-add 没有的话,就先运行如下命令
eval  `ssh-agent -s`
  1. 添加公钥到 gitlab、githubgitee
  • 复制 gitlab_id.pub 文件里的内容,黏贴到对应网站的个人配置中。
  1. 验证是否可以克隆。
# 验证是否可以连接目标服务器,验证格式:ssh -T git@domain。
# domain 是克隆项目时 git@domain:project 之间的内容。
ssh -T git@gitlab.company.com
ssh -T git@gitee.com
ssh -T git@github.com
# 直接克隆项目代码试试
git clone git@xxx.git

五. 命令总结

# 生成秘钥
ssh-keygen -t ed25519 -C "zhangsan@qq.com"
# 查看添加秘钥到 管理器
ssh-add -l
ssh-add ~/.ssh/id_rsa
# 运行管理器
eval  `ssh-agent -s`
# 验证是否可以访问
ssh -T git@gitee.com

六. windows 10 需要注意以下两点

  1. 在 服务 中开启 ssh agent。
  • win + R -> services.msc -> openssh -> auto
  1. 如果执行 ssh -T git@gitee.com 可以,但是仍不能 克隆 代码,需要配置 config 文件。

http://www.niftyadmin.cn/n/4983198.html

相关文章

Feign在进行序列化时遇到泛型类型的擦除,导致反序列化时成了LinkedHashMap

Feign在进行序列化时遇到泛型类型的擦除,导致反序列化时成了LinkedHashMap 故障背景问题分析修复方案修复方案一 避免使用泛型修复方案二 解析data泛型的时候处理 故障背景 假设我们有一个Feign接口 import org.springframework.cloud.openfeign.FeignClient; imp…

Mac软件删除方法?如何删除不会有残留

Mac电脑如果有太多无用的应用程序,很有可能会拖垮Mac系统的运行速度。因此,卸载电脑中无用的软件是优化Mac系统运行速度的最佳方式之一。Mac卸载应用程序的方式是和Windows有很大的区别,特别对于Mac新用户来说,如何无残留的卸载删…

jvm 新生代的区域划分

虚拟机将内存分为一块较大的 Eden 空间和两块较小的 Survivor 空间,每次分配内存只使用 Eden 和其中一块 Survivor。发生垃圾收集时,将 Eden 和 Survivor 中仍然存活的对象一次性复制到另外一块 Survivor 空间上,然后直接清理掉 Eden 和已用过…

【SaaS】你知道什么是SaaS吗?

文章目录 前言一、云服务架构的三个概念1.1 PaaS1.2 IaaS1.3 SaaS 二、SaaS系统的两大特征三、SaaS服务与传统服务、互联网服务的区别3.1 SaaS服务3.2 传统软件3.3 互联网应用供应商 四、B2B2C五、SaaS系统的分类5.1 业务型SaaS5.2 效率型SaaS5.3 混合型SaaS 六、如何SaaS化七、…

list对象中如何根据对象中某个属性去重使用Java8流实现

list对象中如何根据对象中某个属性去重使用Java8流实现? 在 Java 8 的流操作中,可以使用 distinct 方法来对一个对象流进行去重,但是默认情况下它会使用对象的 equals() 方法来判断重复。如果你希望根据对象的某个属性进行去重,则可以使用 …

Sharding-jdbc5.2.1分库分表入门-1

Sharding Sphere简介与参考 Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强 官网:https://shardingsphere.apache.org/index_zh.html 官方样例:https://shardingsphere.apache.org/blog/cn/material/…

linux中学习控制进程的要点

1. 进程创建 1.1 fork函数 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核会做以下操作 分配新的内存块和…

Matlab图像处理-水平镜像

镜像变换 镜像变换又常称为对称变换&#xff0c;它可以分为水平对称、垂直对称等多种变换。对称变换后&#xff0c;图像的宽和高不变。 图像的镜像分为两种垂直镜像和水平镜像。 水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换&#xff1b; 竖直镜像…