ssh配置(一、GitLabGitHub)

一. 为什么配置ssh

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

二. 原理的通俗解释

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

三. 相关文件

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

四. 关键步骤

  1. 生成秘钥对,可以检查目录 ~/.ssh/ 下是否有秘钥对,如果没有则重新生成。
bash 复制代码
# 给 邮箱[email protected] 或 用户lisi 生成公私钥
# -t 参数:指定算法 ed25519,更加高效和安全
# -C 参数:指定公私钥中的注释,一般用邮箱或用户名,不影响使用
ssh-keygen -t ed25519 -C "[email protected]"
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 私钥管理器。
bash 复制代码
# 查看当前已经添加的 秘钥
ssh-add -l
# 添加指定的 秘钥,不要添加公钥
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/gitlab_id
# 如果发现本地 ssh-add 没有的话,就先运行如下命令
eval  `ssh-agent -s`
  1. 添加公钥到 gitlab、github、gitee
  • 复制 gitlab_id.pub 文件里的内容,黏贴到对应网站的个人配置中。
  1. 验证是否可以克隆。
bash 复制代码
# 验证是否可以连接目标服务器,验证格式:ssh -T git@domain。
# domain 是克隆项目时 git@domain:project 之间的内容。
ssh -T [email protected]
ssh -T [email protected]
ssh -T [email protected]
# 直接克隆项目代码试试
git clone [email protected]

五. 命令总结

bash 复制代码
# 生成秘钥
ssh-keygen -t ed25519 -C "[email protected]"
# 查看添加秘钥到 管理器
ssh-add -l
ssh-add ~/.ssh/id_rsa
# 运行管理器
eval  `ssh-agent -s`
# 验证是否可以访问
ssh -T [email protected]

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

  1. 在 服务 中开启 ssh agent。
  • win + R -> services.msc -> openssh -> auto
  1. 如果执行 ssh -T [email protected] 可以,但是仍不能 克隆 代码,需要配置 config 文件。
相关推荐
Morpheon8 分钟前
Cursor 1.0 版本 GitHub MCP 全面指南:从安装到工作流增强
ide·github·cursor·mcp
LinXunFeng3 小时前
Flutter - GetX Helper 助你规范应用 tag
flutter·github·visual studio code
草梅友仁4 小时前
AI 图片文字翻译与视频字幕翻译工具推荐 | 2025 年第 23 周草梅周报
开源·github·aigc
MrWang.6 小时前
Ubuntu中SSH服务器安装使用
服务器·ubuntu·ssh
qianmoQ8 小时前
GitHub 趋势日报 (2025年06月04日)
github
abcnull9 小时前
github中main与master,master无法合并到main
git·github
星哥说事10 小时前
使用VuePress2.X构建个人知识博客,并且用个人域名部署到GitHub Pages中
开源·github
勤劳打代码11 小时前
步步为营 —— Github Connection refused 分层诊断
github
家庭云计算专家11 小时前
飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家
运维·云计算·ssh·nextcloud·ddns·动态域名解析
寻月隐君12 小时前
深入解析 Rust 的面向对象编程:特性、实现与设计模式
后端·rust·github