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

在 macOS 上配置 SSH 连接 GitHub

在 macOS 上使用 SSH 连接 GitHub,可以免去每次使用 Git 时输入密码的麻烦,提高开发效率。本文将介绍如何在 macOS 上生成 SSH 密钥并配置 GitHub 进行身份认证。


1. 检查是否已有 SSH 密钥

在终端运行以下命令,检查是否已有 SSH 密钥:

ls -al ~/.ssh

如果看到 id_rsaid_rsa.pub 这两个文件,说明已有 SSH 密钥,可跳过生成步骤。
在这里插入图片描述


2. 生成新的 SSH 密钥

如果没有 SSH 密钥,可以运行以下命令生成一个新的:

ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
  • -t rsa:使用 RSA 加密算法
  • -b 4096:生成 4096 位密钥,提高安全性
  • -C "your-email@example.com":添加你的 GitHub 账号邮箱作为注释

终端会提示你保存密钥的路径,默认路径是 ~/.ssh/id_rsa,直接按 回车 即可。

系统还会提示输入 Passphrase(密码短语),可以选择输入(提高安全性)或直接回车跳过(更方便使用)。


3. 添加 SSH 密钥到 ssh-agent 并让其永久生效

为了避免每次使用 SSH 都要输入密钥密码,可以将密钥添加到 ssh-agent 中。

  1. 启动 ssh-agent
    eval "$(ssh-agent -s)"
    
  2. 添加 SSH 私钥到 ssh-agent
    ssh-add ~/.ssh/id_rsa
    

🔒 让 ssh-agent 记住密钥(避免重启后失效)

如果你想让 ssh-agent 记住你的密钥,每次开机后自动加载,可以执行以下命令:

echo "ssh-add ~/.ssh/id_rsa" >> ~/.zshrc  # 适用于 zsh(macOS 默认)
echo "ssh-add ~/.ssh/id_rsa" >> ~/.bashrc # 适用于 bash

然后重新加载 shell 配置:

source ~/.zshrc  # 如果你使用 zsh
source ~/.bashrc  # 如果你使用 bash

如果你使用 macOS Monterey 及以上版本,可能需要修改 ~/.ssh/config 以启用 UseKeychain 选项:

echo "Host github.com\n  AddKeysToAgent yes\n  UseKeychain yes\n  IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config

4. 添加 SSH 公钥到 GitHub

SSH 连接 GitHub 需要将 公钥 添加到 GitHub 账号。

  1. 显示 SSH 公钥内容:
    cat ~/.ssh/id_rsa.pub
    
  2. 复制终端输出的公钥内容。
  3. 打开 GitHub SSH Key 设置。
  4. 点击 “New SSH Key”
    • Title:输入描述,如 “MacBook SSH Key”。
    • Key Type:选择 Authentication Key
    • Key:粘贴公钥内容。
  5. 点击 “Add SSH Key”,完成绑定。

5. 测试 SSH 连接

使用以下命令测试 SSH 连接 GitHub:

ssh -T git@github.com

如果成功,会返回:

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

6. 让 Git 使用 SSH 方式

默认情况下,Git 可能仍然使用 HTTPS 访问 GitHub。可以运行以下命令让 Git 全局使用 SSH:

git config --global url."git@github.com:".insteadOf "https://github.com/"

这将确保 git clonegit pullgit push 默认使用 SSH。


7. 常见问题与解决方案

1. Permission denied (publickey). 错误

解决方法

  • 确保 SSH Key 已经添加到 GitHub。
  • 运行 ssh-add -l 确保密钥已经加载。
  • 重新运行 ssh -T git@github.com 进行测试。

2. Agent admitted failure to sign using the key

解决方法
重新添加 SSH 密钥到 ssh-agent

ssh-add ~/.ssh/id_rsa

3. Git 操作仍然要求输入用户名和密码

解决方法

  • 确保 GitHub 远程地址是 SSH 形式:
    git remote -v
    
    如果是 https://,修改为 SSH:
    git remote set-url origin git@github.com:your-username/your-repo.git
    

8. 总结

至此,你已经成功配置 SSH 连接 GitHub,并让 Git 默认使用 SSH。这样,在 git clonegit pullgit push 时,都不需要再输入密码,极大提升开发效率。

完成的步骤:

  • 生成 SSH 密钥
  • 添加密钥到 ssh-agent 并配置永久生效
  • 将公钥添加到 GitHub
  • 测试 SSH 连接
  • 配置 Git 使用 SSH

现在,你可以无密码使用 GitHub 了!🚀

相关文章:

  • 希尔排序
  • C++脚本化方案调研
  • Axure PR 9.0(发音:Ack-sure)原型图工具入门教程:链接交互
  • 股指期货贴水波动,影响哪些投资策略?
  • 制作Oracle11g Docker 镜像
  • 协程的调度的对称与非对称
  • DeepSeek政务应用场景与解决方案【清华大学最新版】
  • 菜鸟之路Day25一一前端工程化(二)
  • 【数据结构进阶】位图
  • python学习笔记--实现简单的爬虫(一)
  • Ambari、Bigtop源码编译最新支持情况汇总
  • I don‘t know
  • 数据库分页查询详解
  • 嵌入式系统的核心组成部分处理器、存储器、传感器和执行器
  • 练习:倒着输出数字
  • 手机号登录与高并发思考
  • 《洛谷刷题笔记》day11
  • 如何使用AIOps明确Devps的问题归责
  • 【leetcode题解】二分算法
  • Spring6:8 资源操作-Resources
  • 高进华“控股”后首份年报出炉,史丹利账上可动资金大幅缩水
  • 潘功胜:将下调个人住房公积金贷款利率0.25个百分点
  • 刘诚宇、杨皓宇进球背后,是申花本土球员带着外援踢的无奈
  • 湖北十堰市委副秘书长管聪履新丹江口市代市长
  • 中国驻美大使谢锋:经贸关系不是零和游戏,滥施关税损人害己
  • 马斯克“星舰基地”成为新城镇,首任市长为SpaceX员工