保姆教程系列:生成 SSH Key 并配置连接远程仓库
@
前言
请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、
提示:以下是本篇文章正文内容,下面案例可供参考
生成 SSH Key 并配置 GitHub/GitLab 详细教程
第 1 步:检查是否已有 SSH Key
在 Git Bash (Windows)、终端 (Linux/macOS) 运行以下命令:
ls -al ~/.ssh
可能的输出:
如果已有 SSH Key(如 id_rsa 和 id_rsa.pub)
说明你已经生成过 SSH Key,可以跳到 第 4 步 直接添加到 GitHub/GitLab。
如果 .ssh 目录不存在或没有 id_rsa 文件 说明你需要生成新的 SSH Key,请继续下一步。
第 2 步:生成新的 SSH Key
运行以下命令:
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
示例:
ssh-keygen -t rsa -b 4096 -C "yaoyuzhuo6@gmail.com"
参数说明:
-t rsa :使用 RSA 算法(GitHub/GitLab 推荐)
-b 4096 :生成 4096 位密钥(比默认 2048 位更安全)
-C "你的邮箱" :添加注释(通常是你的 GitHub/GitLab 绑定邮箱)
系统会询问以下问题:
Enter file in which to save the key(~/.ssh/id_rsa 默认回车)
Enter file in which to save the key (/home/your-user/.ssh/id_rsa):
- 直接回车 使用默认路径(推荐)
- 如果已有密钥,可以换个名字,如
id_rsa_github
- Enter passphrase(输入密码,可留空)
Enter passphrase (empty for no passphrase):
- 建议直接回车(否则每次使用 SSH 都要输入密码)
生成成功后,会在 ~/.ssh/ 目录下创建两个文件:
~/.ssh/id_rsa # 私钥(不要分享)
~/.ssh/id_rsa.pub # 公钥(需要添加到 GitHub/GitLab)
第 3 步:启动 SSH Agent 并添加密钥
1️⃣ 启动 SSH 代理(用于管理密钥):
eval "$(ssh-agent -s)"
成功时会返回:
Agent pid 12345
2️⃣ 将私钥添加到 SSH 代理:
ssh-add ~/.ssh/id_rsa
如果你的私钥文件名不是 id_rsa,请修改为实际名称:
ssh-add ~/.ssh/id_rsa_github
如果报错:
Could not open a connection to your authentication agent
请先运行:
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
第 4 步:复制 SSH 公钥
运行:
cat ~/.ssh/id_rsa.pub
复制公钥的方法:
Windows Git Bash:
clip < ~/.ssh/id_rsa.pub
macOS:
pbcopy < ~/.ssh/id_rsa.pub
Linux(手动复制):
cat ~/.ssh/id_rsa.pub
第 5 步:添加 SSH Key 到 GitHub/GitLab
GitHub:
打开 GitHub SSH 设置点击 New SSH KeyTitle:随便填(如 “My Laptop”)Key:粘贴 id_rsa.pub 里的内容点击 Add SSH Key
GitLab:
打开 Preferences -> SSH Keys粘贴 id_rsa.pub 的内容点击 Add Key
第 6 步:测试 SSH 连接
ssh -T git@github.com
如果成功,会看到:
Hi <your-username>! You've successfully authenticated, but GitHub does not provide shell access.
SSH Key 配置成功!
第 7 步:设置 Git 使用 SSH 方式拉取代码
默认情况下,Git 可能还在使用 HTTPS,需要手动改为 SSH。
设置全局 Git 远程 URL 方式:
git config --global url."git@github.com:".insteadOf "https://github.com/"
这样你 git clone 或 git push 就不会要求输入 GitHub 账号和密码了!
第 8 步:使用 SSH 克隆 GitHub/GitLab 仓库
HTTPS 方式(需要输入密码):
git clone https://github.com/your-username/repository.git
SSH 方式(不需要输入密码):
git clone git@github.com:your-username/repository.git
如果使用 GitLab:
git clone git@gitlab.com:your-username/repository.git
总结
检查 SSH Key
生成 SSH Key
启动 SSH 代理 & 添加密钥
复制公钥 & 添加到 GitHub/GitLab
测试 SSH 连接
使用 SSH 克隆仓库
完成后,你的 Git 连接将更加安全,且无需每次输入密码!
我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!
保姆教程系列:生成 SSH Key 并配置连接远程仓库的更多相关文章
- 如何给 GitHub 添加 SSH key, 如何生成 SSH key 详细图文教程!
如何给 GitHub 添加 SSH key, 如何生成 SSH key 详细图文教程! 一. 生成 SSH key https://ide.c9.io/xgqfrms/ 创建一个空项目:(或使用 ...
- win7生成ssh key配置到gitlab
测试服务上使用ip访问gitlab,比如http://192.168.0.2/,创建用户并登陆后创建一个项目,比如git@gitlab.demo.com:demo/helloworld.git 如果想 ...
- Win环境 Android Studio使用Git 教程 ( 生成SSH key )
Github和码云都提供SSH协议,即用户可以用公钥认证方式连接到码云的SSH服务器.这就需要生成并部署SSH Key.下面就是我生成SSH Key的步骤,希望有所帮助: Git生成SSH key 在 ...
- Git 生成SSH Key
背景:服务器是LINUX系统(centos7),使用GitLab管理git代码库.各个客户端通过sourcetree 工具,采用SSH获取.提交代码.使用SSH的方式需要公钥和私钥.下面介绍秘钥的生成 ...
- Git - 生成ssh key步骤以及如何clone所有的远程分支
https://www.cnblogs.com/gongyuhonglou/p/6922721.html 2. 生成ssh key $ ssh-keygen -t rsa -C “邮箱”按3个回车,密 ...
- SecureCRT 用ssh key登录配置方法
服务器端配置 OS: Debian-6.0.5 复制代码 代码如下: #apt-get install ssh 安装ssh服务 编辑/etc/ssh/sshd_config配置文件 复制代码 代码如下 ...
- git生成ssh key和多账号支持
git配置ssh 1.首先设置git的全局user name和email $ git config --global user.name "ygtzz"$ git config - ...
- git生成ssh key及本地解决多个ssh key的问题
git生成ssh key及本地解决多个ssh key的问题 ssh是一种网络协议,用于计算机之间的加密登录.ssh原理及应用可参考: SSH原理与运用(一):远程登录 生成ssh key步骤 这里以配 ...
- linux下安装Git并生成SSH key
系统:contens7.4 1.下载源码解压 wget https://github.com/git/git/archive/v2.3.0.zip unzip v2.3.0.zip cd git-2. ...
- 保姆教程系列二、Nacos实现注册中心
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到 保姆教程系列一.Linux搭建Nacos 注册中心原理 一.环境准备 Java版本:1.8+ (Linux ce ...
随机推荐
- 设计原则&模式:原型模式 Prototype(创建型)
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.也就是说,这种不通过new关键字来产生一个对象,而是通过对象复制(Java中的clone或反序列化)来实现的模式,就叫做原型模式. ...
- ubuntu更换国内镜像源备忘
源的路径: /etc/apt/sources.list 更换前备份一下: sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 打开文档,修 ...
- 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 随时近来 AI 大模型的火热,越来越多 ...
- 如何通过 MCP 将你的 Supabase 数据库连接到 Cursor
Cursor + MCP + Supabase. 图片来自作者 在过去几周里,MCP(Model Context Protocol,模型上下文协议)在许多 AI 相关的在线社区和论坛里大火.开发者和技 ...
- Docker IPv6 网络环境配置
由于目前Docker 在IPv6网络中运行的相关配置并非默认自动生成的,所以需要大家根据自己的网络环境来具体做一些相应配置,具体如下: 本次操作是在 Ubuntu16/18或者CentOS7 OS上面 ...
- VSCode 终端中文乱码解决方案
问题描述 以下为一个简单的 c++ 文件代码,注意中文部分的显示内容 //测试代码 #include <stdio.h> int main() { int y = 10; int coun ...
- 【Java】NIO
1. Java NIO 简介 Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API. NIO与原来的IO有同样的作用和目的,但是 ...
- 【Maven】在 Eclipse 中使用 Maven
在 Eclipse 中使用 Maven 1 安装 Maven 核心程序 下载地址:http://maven.apache.org/ 检查 JAVA_HOME 环境变量.Maven 是使用 Java 开 ...
- WPF MessageBox
参考文档 MessageBox MessageBoxButton MessageBoxImage MessageBoxOptions MessageBoxResult
- 继承 QPaintEngine 利用 QSvgRenderer 从SVG 图片中提取路径(QPainterPath)的方法
SVG 作为为可缩放矢量图形(Scalable Vector Graphics),易于编辑和维护,基于XML的文本文件存储,在网页设计.图标制作.数据可视化和其他图形相关的领域应用广泛.在应用工程中总 ...