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

pycharm连接GitHub,怎么配置 SSH 密钥并改用 SSH 连接

先说结论:用ssh主要解决本地连接GitHub时用https网络不稳定,老连不上。

觉得下面排版有问题,可以直接把“具体给我说说怎么配置 SSH 密钥并改用 SSH 连接”发给腾讯元宝,还有windows系统用下面的cat 命令会报错,单独写一篇再讲。

配置 SSH 密钥并改用 SSH 连接 GitHub 是解决网络连接问题的一个好方法,通常比 HTTPS 更稳定。下面是具体的步骤。

🔑 生成 SSH 密钥对

首先,你需要在你本地电脑上生成一对 SSH 密钥(一个公钥,一个私钥)。

  1. ​打开终端​​ (Windows 用户可使用 Git Bash 或 PowerShell)。

  2. ​生成密钥​​:运行以下命令,将 your_email@example.com替换为你 GitHub 账户绑定的邮箱(这只是一个标识)。

    ssh-keygen -t ed25519 -C "your_email@example.com"

    • 如果系统提示不支持 ed25519算法,可以使用 RSA:

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  3. ​指定保存路径和密码​​:

    • 按回车使用默认保存路径(通常是 ~/.ssh/id_ed25519或 ~/.ssh/id_rsa)。

    • 系统会提示你为密钥设置一个密码(passphrase)。设置密码可以增加安全性,但每次使用密钥时都需要输入。你也可以直接回车留空。

📋 将 SSH 公钥添加到 GitHub

生成密钥后,需要将公钥添加到你的 GitHub 账户。

  1. ​复制公钥内容​​:使用以下命令显示并复制公钥内容(从终端输出中复制,通常以 ssh-ed25519或 ssh-rsa开头):

    cat ~/.ssh/id_ed25519.pub

    或者,如果使用的是 RSA:

    cat ~/.ssh/id_rsa.pub

  2. ​在 GitHub 上添加公钥​​:

    • 登录 GitHub,点击右上角头像,进入 ​​Settings​​。

    • 在左侧边栏中选择 ​​SSH and GPG keys​​。

    • 点击 ​​New SSH key​​。

    • 在 "Title" 中为密钥取一个易于识别的名字(例如 "My Work Laptop")。

    • 将刚才复制的公钥内容粘贴到 "Key" 字段中。

    • 点击 ​​Add SSH key​​。

✅ 测试 SSH 连接

添加公钥后,测试一下是否配置成功。

  1. 在终端中运行:

    ssh -T git@github.com

  2. 你可能会看到类似如下的警告,输入 yes继续:

    The authenticity of host 'github.com (IP ADDRESS)' can't be established. Are you sure you want to continue connecting (yes/no/[fingerprint])?

  3. 如果配置成功,你会看到如下提示:

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

🔄 将现有仓库的远程地址切换为 SSH

如果你的本地仓库之前使用的是 HTTPS 协议,需要将其切换为 SSH。

  1. ​查看当前远程仓库地址​​:

    git remote -v

    这会显示当前的远程地址,可能是以 https://github.com/...开头。

  2. ​切换为 SSH 地址​​:

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

    请将 username替换为你的 GitHub 用户名,repository替换为你的仓库名。

  3. ​再次验证​​:

    git remote -v

    现在应该显示以 git@github.com:开头的 SSH 地址。

🆕 后续使用 SSH 克隆仓库

之后克隆新仓库时,直接使用 SSH URL 即可:

git clone git@github.com:username/repository.git

⚠️ 可能遇到的问题及解决方法

  • ​权限错误 (Permissions too open)​​:如果遇到 WARNING: UNPROTECTED PRIVATE KEY FILE!,说明私钥文件的权限太开放。可以运行以下命令修复:

    chmod 600 ~/.ssh/id_ed25519

  • ​管理密钥密码​​:如果你为密钥设置了密码,并且不想每次使用都输入,可以借助 ssh-agent来管理

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

  • ​多个 GitHub 账户或密钥​​:如果你需要为不同的 GitHub 账户使用不同的密钥,可以在 ~/.ssh/config文件中进行配置

http://www.dtcms.com/a/391217.html

相关文章:

  • ​​[硬件电路-265]:电源系统要考虑的因素包括:不同的输出电压、隔离防干扰、防反、防浪涌、电压可调、电源开关、电池、可充电、低纹波、低噪声、防波动等
  • 【开题答辩全过程】以 基于Python的电影推荐系统为例,包含答辩的问题和答案
  • 格拉姆角场(Gramian Angular Field, GAF)详解
  • 前端开发工具Vue有哪些?常用Vue前端开发工具推荐、Vue开发工具对比与最佳实践分享
  • 基于vue的幼儿园健康管理系统0fz0y(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 第69课 分类任务: 基于BERT训练情感分类与区别二分类本质思考
  • Mysql杂志(二十)——MyISAM索引结构与B树B+树
  • Java 大视界 -- 基于 Java 的大数据实时流处理在金融高频交易数据分析中的应用
  • BonkFun 推出 USD1:Meme 币玩法的新入口
  • flutter在包含ListVIew的滚动列表页面中监听手势
  • Redis 三种集群模式详解
  • 打开hot100
  • Ant-Design Table中使用 AStatisticCountdown倒计时,鼠标在表格上移动时倒计时被重置
  • Linux crontab 定时任务工具使用
  • 阿里云RDS mysql8数据本地恢复,与本地主从同步(容器中)
  • 记录一次mysql启动失败问题解决
  • LeetCode算法练习:35.搜索插入位置
  • (1) 为什么推荐tauri框架
  • 嵌入式面试高频(八)!!!C++语言(嵌入式八股文,嵌入式面经)
  • Spring AI开发指导-工具调用
  • Linux 基本命令超详细解释第二期 | touch | cat | more | cp | mv | rm | which | find
  • [x-cmd] 安装指南
  • Altium Designer(AD24)原理图Move移动功能详细介绍图文教程
  • 部署java程序,服务器报403 Forbidden 问题的终极解决方案
  • 【LeetCode】链表经典问题解析:环形、回文与相交
  • 电磁超材料及其领域应用优势
  • STM32与Modbus RTU协议实战开发指南-fc3ab6a453
  • ArrayList 与 LinkedList 深度对比:从原理到场景的全方位解析
  • Ubuntu和windows复制粘贴互通
  • 银行回单 OCR 识别:财务自动化的 “数据入口“