当前位置: 首页 > ops >正文

Ubuntu:Git SSH密钥配置的完整流程

🛠 Ubuntu 下 Git SSH 密钥配置完整流程

1️⃣ 检查是否已有 SSH 密钥

先看看本地有没有旧的 SSH 密钥:

ls -al ~/.ssh

可能会看到这些文件:

  • id_rsa / id_rsa.pub → 旧的 RSA 密钥对

  • id_ed25519 / id_ed25519.pub → 较新的 ED25519 密钥对

如果已经存在,而且没过期,可以直接用。如果显示密钥过期,建议重新生成。

2️⃣ 生成新的 SSH 密钥对

推荐使用更安全、更快的 ED25519 算法

ssh-keygen -t ed25519 -C "你的邮箱"

执行后会提示:

Enter file in which to save the key (/home/youruser/.ssh/id_ed25519):

直接回车(保存在默认路径),如果要保留旧密钥,可以改个名字,比如 id_ed25519_new

然后会提示输入密码短语,可以直接回车跳过(不设置密码)。

生成完成后,你会得到两个文件:

  • ~/.ssh/id_ed25519私钥,自己保留,不要泄露

  • ~/.ssh/id_ed25519.pub公钥,用来上传到远程仓库

3️⃣ 将公钥添加到远程 Git 仓库

如果用 GitHub
cat ~/.ssh/id_ed25519.pub

复制输出内容,然后:

  • 登录 GitHub

  • 进入 Settings → SSH and GPG keys

  • 点击 New SSH key

  • 填名字(随便取),把复制的公钥粘贴进去,保存

如果用 GitLab
  • 登录 GitLab

  • 进入 Profile → Preferences → SSH Keys

  • 粘贴公钥,保存

4️⃣ 测试 SSH 连接

GitHub:

ssh -T git@github.com

GitLab:

ssh -T git@gitlab.com

如果成功,会输出类似:

Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.

5️⃣ 配置 Git 使用 SSH 协议

如果你之前用 HTTPS clone 的仓库,建议改成 SSH 远程地址:

git remote set-url origin git@github.com:your-username/your-repo.git

查看确认:

git remote -v

应该显示 SSH 地址。

6️⃣ 添加到 ssh-agent(可选)

为了避免每次都要输入密码,可以把密钥加入 ssh-agent:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

7️⃣ 拉取代码测试

git pull origin 分支名

到此为止,你的 Ubuntu 已经配置好了新的 SSH key,可以正常拉取和推送代码。

http://www.xdnf.cn/news/20159.html

相关文章:

  • 捷多邦揭秘超厚铜板:从制造工艺到设计关键环节​
  • 让字符串变成回文串的最少插入次数-二维dp
  • 单元测试详解
  • 基于树莓派与Jetson Nano集群的实验边缘设备上视觉语言模型(VLMs)的性能评估与实践探索
  • 【c++进阶系列】:万字详解AVL树(附源码实现)
  • ubuntu 系統使用過程中黑屏問題分析
  • 前端上传切片优化以及实现
  • 基于LLM开发Agent应用开发问题总结
  • equals 定义不一致导致list contains错误
  • SQL面试题及详细答案150道(81-100) --- 子查询篇
  • webrtc弱网-LossBasedBandwidthEstimation类源码分析与算法原理
  • 【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
  • 【ComfyUI】混合 ControlNet 多模型组合控制生成
  • ANSYS HFSS边界条件的认识
  • 【LeetCode热题100道笔记】二叉树中的最大路径和
  • 9.FusionAccess桌面云
  • Spring的事件监听机制(一)
  • 03.缓存池
  • 【数学建模】质量消光系数在烟幕遮蔽效能建模中的核心作用
  • 故障诊断 | MATLAB基于CNN - LSSVM组合模型在故障诊断中的应用研究
  • 在Ubuntu上配置Nginx实现开机自启功能
  • 54.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--实现手机邮箱注册
  • js面试题 什么是作用域?
  • 【Proteus仿真】定时器控制系列仿真——LED小灯闪烁/流水灯/LED灯带控制/LED小灯实现二进制
  • EG2104 SOP-8 带SD功能 内置600V功率MOS管 栅极驱动芯片
  • 智能客户服务支持智能体
  • 基于GOA与BP神经网络分类模型的特征选择方法研究(Python实现)
  • 登录优化(双JWT+Redis)
  • 开源AI智能名片链动2+1模式S2B2C商城小程序服务提升复购率和转介绍率的研究
  • 80(HTTP默认端口)和8080端口(备用HTTP端口)区别