ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

IDEA上传GitHub失败?彻底搞懂SSH密钥配置原理与实操

IDEA上传GitHub失败?彻底搞懂SSH密钥配置原理与实操

1. 项目概述:为什么一个IDEA项目上传GitHub要专门讲透SSH配置

IntelliJ IDEA上传代码到GitHub,表面看只是点几下鼠标的事——VCS菜单里选Git、填URL、点Commit再Push。但我在带新人和做内部技术培训时发现,超过七成的上传失败问题,根源不在IDEA操作本身,而卡在SSH公钥这一环。有人填错URL协议(https混用git@),有人生成密钥后没加进ssh-agent,有人把私钥当公钥贴进GitHub设置,还有人用Windows自带OpenSSH却忘了改默认路径……这些都不是“不会用”,而是对底层通信机制缺乏基本认知。

这个标题里的“详解”二字,不是客套话。它意味着你要真正理解:为什么必须用SSH而不是HTTPS?公钥和私钥到底谁该存本地、谁该交出去?GitHub服务器怎么靠一串字符就确认你是你?如果你只是复制粘贴教程命令,下次换台电脑、重装系统、升级IDEA版本,大概率又得从头查一遍。我见过太多人反复踩同一个坑——不是操作不熟,是逻辑没打通。

这篇文章面向三类人:刚学Java/后端开发、第一次用IDEA管理Git项目的新人;已经会用但总在Push环节报错、想彻底搞明白原理的中级开发者;以及需要给团队写标准化开发环境文档的技术负责人。内容不堆概念,所有解释都绑定真实操作场景。比如讲到ssh-add -l命令时,我会告诉你它实际读的是哪个内存缓存区;说到~/.ssh/config文件,会直接给出适配多账号(公司GitLab+个人GitHub)的最小可用配置模板。没有“理论上应该”,只有“我实测下来,这样最稳”。

2. 整体设计思路:为什么SSH是IDEA与GitHub通信的最优解

2.1 HTTPS vs SSH:不只是协议选择,而是安全模型的根本差异

很多人以为选HTTPS或SSH只是URL写法不同(https://github.com/user/repo.gitvsgit@github.com:user/repo.git),其实这是两种完全不同的身份验证范式。HTTPS走的是密码/Token认证流:每次Push都要输入GitHub账号密码(已不推荐)或Personal Access Token(PAT)。而SSH走的是非对称密钥认证流:你的电脑生成一对密钥,公钥交给GitHub存档,私钥永远留在你本地硬盘。每次连接时,GitHub发一个随机数给你,你用私钥加密后传回去,GitHub用你存的公钥解密——解得开,证明你拥有私钥,即你是合法用户。

提示:GitHub早在2021年8月就停用了密码登录Git操作,强制要求用PAT或SSH。如果你还在用https://地址且能Push成功,大概率是之前缓存了Token,一旦过期就会突然报403错误。这不是IDEA的问题,是认证通道被关闭了。

为什么IDEA官方文档和主流教程都优先推SSH?三个硬核原因:

  1. 免密操作:配置一次,后续所有Git操作(Pull/Fetch/Push)都不再弹窗输密码;
  2. 权限粒度更细:SSH密钥可绑定具体机器(如只允许MacBook Pro的密钥访问),而PAT一旦泄露,攻击者能调用全部API权限;
  3. IDEA集成度更高:IDEA的Git工具链(如分支图谱、冲突解决面板)对SSH URL的解析更稳定,尤其在处理子模块(submodule)或大型二进制文件时,HTTPS容易因超时中断导致索引损坏。

2.2 IDEA不是Git客户端,而是Git操作的“调度中心”

这里必须厘清一个常见误解:IDEA本身不处理Git协议通信,它调用的是你系统安装的Git命令行工具(git.exe或git)。你在IDEA里点“Push”,背后执行的是类似git push origin main的命令。IDEA的作用是:

  • 解析你配置的远程仓库URL(git@github.com:xxx/yyy.git);
  • 调用系统Git二进制文件发起网络请求;
  • 把Git返回的stdout/stderr日志渲染成图形化提示(如“Push successful”绿字或“Permission denied”红字)。

所以,当IDEA报错“Authentication failed”时,99%的情况是系统Git层出了问题,而非IDEA界面bug。这也是为什么所有SSH配置必须在操作系统层面完成——IDEA无法替你生成密钥、无法帮你启动ssh-agent、无法修改~/.ssh/config。它只负责“告诉Git去连哪里”,不负责“怎么连”。

2.3 配置路径的不可跳过性:从密钥生成到GitHub绑定的完整闭环

整个流程存在严格的依赖链条,漏掉任一环都会导致失败。我们按真实操作顺序拆解:

  1. 生成密钥对:用ssh-keygen创建id_rsa(私钥)和id_rsa.pub(公钥),必须指定加密密码(passphrase)防私钥被盗;
  2. 启动ssh-agent并加载私钥:ssh-agent是运行在内存中的密钥管理器,它把解密后的私钥临时缓存,避免每次Git操作都输密码;
  3. 将公钥内容粘贴到GitHub:不是上传文件,而是把id_rsa.pub文件里的整段文本(以ssh-rsa AAAA...开头)复制进GitHub Settings → SSH and GPG keys;
  4. 验证连接有效性:用ssh -T git@github.com测试,成功返回Hi username! You've successfully authenticated...才算通路闭合;
  5. 在IDEA中配置远程仓库URL:必须用git@github.com:username/repo.git格式,不能用HTTPS地址;
  6. 触发首次Push:IDEA调用Git,Git通过ssh-agent找到私钥,与GitHub完成密钥交换。

注意:第4步验证必须在IDEA外用终端执行。很多人在IDEA内置Terminal里跑ssh -T,结果看到“Connection refused”,其实是IDEA Terminal没继承系统shell的ssh-agent环境变量。正确做法是:关掉IDEA,打开系统原生终端(macOS Terminal/iTerm,Windows PowerShell或Git Bash),再执行验证命令。

3. 核心细节解析:SSH密钥配置的每个动作都在解决什么问题

3.1 密钥生成:为什么必须用rsa而非ed25519?参数选择背后的兼容性权衡

ssh-keygen命令看似简单,但参数组合直接影响后续兼容性。主流教程常写ssh-keygen -t rsa -b 4096,但很少解释为什么:

  • -t rsa:指定密钥类型为RSA。虽然Ed25519(-t ed25519)更安全、更快,但部分老旧Linux发行版或企业内网Git服务器不支持Ed25519。GitHub全面支持,但如果你的项目未来要迁移到公司自建GitLab,RSA仍是兼容性首选;
  • -b 4096:指定密钥长度为4096位。2048位RSA已被认为理论可破解(需超算集群数月),4096位是当前NIST推荐的最低安全标准;
  • -C "your_email@example.com":添加注释(Comment),这串文字会出现在GitHub后台的密钥列表里,方便你区分“这是MacBook的密钥”还是“这是公司台式机的密钥”。

实操中易错点:

  • 不要省略-C参数:很多新手生成后发现GitHub显示密钥名是user@hostname,根本看不出来源。一旦多台设备共用账号,后期排查谁的密钥泄露会非常困难;
  • 不要把私钥存到非默认路径:ssh-keygen默认存到~/.ssh/id_rsa。如果你手动指定-f /path/to/mykey,后续所有步骤(ssh-add、~/.ssh/config配置)都得同步改路径,极易遗漏;
  • 必须设置passphrase:Enter passphrase提示时,务必输入至少8位含大小写字母+数字的密码。空密码=私钥文件被盗即账户沦陷。IDEA无法绕过此密码,但ssh-agent可帮你缓存解密结果。

3.2 ssh-agent:内存中的“钥匙保管箱”,为什么它比记住密码更重要

ssh-agent是OpenSSH套件里的核心守护进程,它的作用就像一个运行在内存里的保险柜:你把私钥“存进去”,它用passphrase解密后把明文密钥保留在RAM中,后续所有SSH连接请求都直接从这里取密钥,无需重复输密码。

关键命令解析:

  • eval "$(ssh-agent -s)":启动ssh-agent并将其环境变量注入当前shell。-s参数输出SSH_AUTH_SOCK和SSH_AGENT_PID变量,eval让它们生效;
  • ssh-add ~/.ssh/id_rsa:把私钥加载进agent。如果设置了passphrase,此时会弹窗要求输入一次密码;
  • ssh-add -l:列出当前agent里加载的所有密钥指纹(fingerprint)。注意:它显示的是密钥的SHA256哈希值(如SHA256:AbCdEf...),不是公钥内容。这是验证密钥是否加载成功的唯一可靠方式;
  • ssh-add -D:清空agent中所有密钥(调试时常用)。

提示:Windows用户需特别注意。若使用Git for Windows自带的OpenSSH,ssh-agent默认不随系统启动。你必须在每次开机后手动运行Start-Service ssh-agent(PowerShell管理员模式),或在Git Bash里执行eval $(ssh-agent)。更稳妥的做法是:在~/.bashrc末尾添加eval $(ssh-agent),这样每次打开Git Bash自动启动。

3.3 GitHub公钥绑定:复制粘贴时最容易忽略的3个字符陷阱

把id_rsa.pub内容粘贴到GitHub时,90%的失败源于文本污染。id_rsa.pub文件本质是一行超长文本,以ssh-rsa开头,中间是Base64编码的密钥数据,结尾是注释(如user@macbook)。常见污染源:

  1. 编辑器自动换行:用记事本(Notepad)打开.pub文件,它会把长文本强制折行。你复制时可能只选中了前半段,粘贴后GitHub识别为无效密钥;
  2. 空格/缩进误粘:用VS Code等编辑器打开,行首可能有不可见的缩进空格。GitHub校验时会把空格当作密钥一部分,导致SHA256指纹不匹配;
  3. 换行符混用:macOS/Linux用\n,Windows用\r\n。某些编辑器保存时插入了回车符,破坏Base64字符串完整性。

正确操作流程:

  1. 在终端执行cat ~/.ssh/id_rsa.pub(macOS/Linux)或type C:\Users\Name\.ssh\id_rsa.pub(Windows),让密钥原样输出到控制台;
  2. 用鼠标双击选中整行文本(从ssh-rsa到邮箱结束),右键复制;
  3. 进入GitHub Settings → SSH and GPG keys → New SSH key,Title填MacBook-Pro-2023这类可读名称,Key type选Authentication Key,Key框内纯粘贴,不删减、不换行、不加空格;
  4. 点击Add SSH key。成功后,该密钥会出现在列表中,Title右侧显示其SHA256指纹(如SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890)。

注意:GitHub后台显示的指纹,和你本地ssh-add -l输出的指纹必须完全一致。这是验证公私钥配对的黄金标准。如果不一致,说明你粘贴的不是id_rsa.pub的内容,或者ssh-add加载的是另一个密钥。

3.4 远程URL配置:IDEA里填错一个字符,Push就永远失败

IDEA中配置远程仓库URL的位置:File → Settings → Version Control → Git → Remote。这里必须填git@github.com:username/repository-name.git格式。常见错误:

  • 混淆用户名和组织名:git@github.com:myorg/myrepo.git是对的,但若myorg实际是GitHub组织(Organization),而你账号是个人账号,仍需用组织名,不是你的个人用户名;
  • 漏掉.git后缀:git@github.com:username/repo会报Repository not found,因为GitHub的SSH服务只响应以.git结尾的路径;
  • 大小写敏感:GitHub仓库名严格区分大小写。MyRepo和myrepo是两个仓库,URL里写错一个字母就404;
  • 用了HTTPS格式却配了SSH密钥:https://github.com/username/repo.git+ SSH密钥=无效组合。Git会尝试用HTTPS协议连接,完全忽略你的SSH配置。

验证URL是否正确的土办法:在终端执行git ls-remote git@github.com:username/repo.git。如果返回一长串commit哈希值,说明URL和密钥都有效;如果报Permission denied (publickey),说明密钥没配好;如果报Repository not found,说明URL拼写错误。

4. 实操过程全记录:从零开始完成IDEA项目上传的每一步

4.1 环境准备:检查系统Git、OpenSSH及IDEA基础配置

第一步永远是确认基础组件就位。打开系统终端(非IDEA内置Terminal),逐条执行:

# 检查Git是否安装及版本(要求2.20+) git --version # 检查OpenSSH客户端是否可用(Windows需确认Git for Windows或WSL) ssh -V # 检查IDEA是否已配置Git路径(重要!) # macOS/Linux: IDEA Preferences → Version Control → Git → Path to Git executable # Windows: IDEA Settings → Version Control → Git → Path to Git executable # 默认路径:/usr/bin/git (macOS), C:\Program Files\Git\bin\git.exe (Windows)

如果git --version报command not found,需先安装Git:

  • macOS:brew install git或官网下载pkg;
  • Windows:从https://git-scm.com/download/win 下载Git for Windows,安装时勾选“Add Git to the system PATH”;
  • Linux(Ubuntu/Debian):sudo apt update && sudo apt install git。

实操心得:Windows用户强烈建议安装Git for Windows而非WSL的Git。前者自带完整OpenSSH套件(含ssh-agent),且与IDEA集成最稳定。WSL的Git虽功能强大,但IDEA调用时容易出现路径映射错误(如/home/user在Windows下显示为\\wsl$\Ubuntu\home\user),导致IDEA找不到工作目录。

4.2 生成并加载SSH密钥:手把手执行命令及预期输出

现在开始核心配置。全程在系统终端操作(macOS Terminal / Windows PowerShell / Git Bash):

# 1. 创建.ssh目录(若不存在),并设置严格权限(Linux/macOS必需) mkdir -p ~/.ssh chmod 700 ~/.ssh # 2. 生成RSA密钥对,-C参数务必填你的GitHub注册邮箱 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 执行后提示: # Generating public/private rsa key pair. # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [直接回车用默认路径] # Enter passphrase (empty for no passphrase): [输入8位以上密码] # Enter same passphrase again: [再次输入] # 3. 启动ssh-agent并注入环境变量 eval "$(ssh-agent -s)" # 输出类似:Agent pid 12345 # 4. 将私钥添加到ssh-agent ssh-add ~/.ssh/id_rsa # 输入passphrase后,输出:Identity added: /Users/you/.ssh/id_rsa (your_email@example.com) # 5. 验证密钥是否加载成功(关键!) ssh-add -l # 正确输出:4096 SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890 your_email@example.com (RSA)

如果ssh-add -l无输出,说明密钥未加载。常见原因:

  • 忘了执行eval "$(ssh-agent -s)";
  • ssh-add时输错passphrase;
  • 私钥文件权限太宽松(如chmod 777 id_rsa),ssh-agent会拒绝加载(安全机制)。

4.3 绑定公钥到GitHub:网页端操作与即时验证

打开浏览器,登录GitHub账号,按路径操作:

  1. 右上角头像 → Settings → SSH and GPG keys;
  2. 右上角绿色按钮 New SSH key;
  3. Title栏填设备标识,如MacBook-Pro-M1-2023;
  4. Key框内粘贴cat ~/.ssh/id_rsa.pub输出的整行文本;
  5. Key type选Authentication Key;
  6. 点击Add SSH key。

添加成功后,页面会显示新密钥及SHA256指纹。立刻回到终端验证:

# 测试与GitHub的SSH连接 ssh -T git@github.com # 首次连接会提示: # The authenticity of host 'github.com (140.82.121.4)' can't be established. # RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. # Are you sure you want to continue connecting (yes/no/[fingerprint])? # 输入 yes,然后回车 # 成功返回:Hi username! You've successfully authenticated, but GitHub does not provide shell access.

注意:如果返回Permission denied (publickey),请立即检查:

  • ssh-add -l是否显示密钥;
  • ssh -T命令是否在系统终端(非IDEA Terminal)执行;
  • GitHub后台显示的密钥指纹是否与ssh-add -l输出一致。三者必须全部吻合。

4.4 IDEA中初始化Git仓库并推送:图形化操作的隐藏要点

现在切回IDEA,以一个新建的Java项目为例(假设项目路径为/Users/you/Projects/my-java-app):

  1. 启用Git版本控制:

    • VCS → Import into Version Control → Create Git Repository;
    • 弹窗选择项目根目录(即my-java-app文件夹),点OK。
      此时IDEA会在项目根目录生成.git文件夹,但尚未关联远程仓库。
  2. 添加远程仓库URL:

    • VCS → Git → Remotes...;
    • 点+号添加新Remote;
    • Name填origin(Git约定俗成的默认远程名);
    • URL填git@github.com:your-github-username/my-java-app.git(注意:your-github-username必须和GitHub账号完全一致,my-java-app必须是GitHub上已创建的空仓库名);
    • 点OK保存。
  3. 首次提交与推送:

    • 右键项目根目录 → Git → Add,将所有文件加入暂存区(Staged);
    • VCS → Git → Commit File,填写Commit message(如Initial commit),勾选Perform code analysis(可选),点Commit and Push;
    • 弹出Push Commits窗口,确认Branch为main(或master,取决于GitHub仓库默认分支),Remote为origin;
    • 点Push。
      如果一切正常,底部Version Control工具窗口会显示Push successful,并附带推送的commit hash。

实操心得:首次Push前,GitHub上必须已创建同名空仓库。很多人在IDEA里点Push,结果报Repository not found,是因为忘了去GitHub网页端点“New repository”建仓。建仓时务必取消勾选Initialize this repository with a README,否则会因远程有commit而产生合并冲突。

4.5 多账号场景:如何在同一台电脑管理GitHub个人库和公司GitLab

现实开发中,你很可能同时用GitHub(个人开源)和公司GitLab(内部项目)。如果都用默认id_rsa,后加载的密钥会覆盖前一个,导致其中一个平台Push失败。解决方案是:为不同平台生成独立密钥,并用~/.ssh/config文件做路由规则。

步骤:

  1. 为GitLab生成新密钥:ssh-keygen -t rsa -b 4096 -C "work_email@company.com" -f ~/.ssh/id_rsa_gitlab;
  2. 将id_rsa_gitlab.pub内容添加到GitLab Settings → SSH Keys;
  3. 编辑~/.ssh/config文件(若不存在则新建):
# GitHub个人账号 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes # 公司GitLab Host gitlab.company.com HostName gitlab.company.com User git IdentityFile ~/.ssh/id_rsa_gitlab IdentitiesOnly yes
  1. 重新加载密钥:ssh-add -D && ssh-add ~/.ssh/id_rsa && ssh-add ~/.ssh/id_rsa_gitlab;
  2. 验证:ssh -T git@github.com和ssh -T git@gitlab.company.com应分别返回对应平台的成功提示。

在IDEA中,只要远程URL写成git@github.com:user/repo.git或git@gitlab.company.com:group/project.git,IDEA调用Git时会自动根据Host规则匹配~/.ssh/config里的配置,精准调用对应私钥。

5. 常见问题与排查技巧实录:那些让你抓狂的报错真相

5.1 “Permission denied (publickey)”:不是密钥错了,是路径或权限错了

这是最高频报错,但原因五花八门。按排查优先级排序:

现象根本原因解决方案
ssh-add -l无输出,但ssh-keygen确认生成了密钥ssh-agent未启动或未注入环境变量关闭所有终端,重启系统终端,执行eval "$(ssh-agent -s)"后再ssh-add
ssh-add -l显示密钥,但ssh -T git@github.com仍报错~/.ssh/config文件存在语法错误(如多了一个空格)临时重命名config文件,用ssh -T -i ~/.ssh/id_rsa git@github.com强制指定密钥路径测试
ssh -T成功,但IDEA Push失败IDEA未使用系统Git,或Git路径配置错误Settings → Version Control → Git → Test按钮,看是否返回Git version ...;若失败,手动指定Git路径
Windows下ssh-add报Could not open a connection to your authentication agentssh-agent服务未运行PowerShell管理员模式执行Start-Service ssh-agent,并设为自动启动:Set-Service -StartupType Automatic ssh-agent

独家技巧:当所有常规方法失效,用GIT_SSH_COMMAND="ssh -v"环境变量开启Git调试日志。在IDEA Terminal中执行:
GIT_SSH_COMMAND="ssh -v" git push origin main
它会输出SSH握手全过程,从TCP连接、密钥交换到认证完成,每一行都有时间戳。重点看debug1: Offering public key: /Users/you/.ssh/id_rsa和debug1: Authentication succeeded这两行,就能定位卡在哪一步。

5.2 “Repository not found”:URL拼写、仓库状态与网络策略的三角博弈

这个错误常被误认为是权限问题,实则多与URL或仓库状态相关:

  • URL大小写错误:GitHub仓库名MyApp≠myapp。用git remote get-url origin在终端查看IDEA实际使用的URL,复制出来手动对比;
  • 远程仓库不存在:GitHub上还没创建该仓库。进入https://github.com/new建仓,名称必须和URL中/username/repo-name.git的repo-name完全一致;
  • 仓库是私有的,但账号无访问权限:如果是公司组织下的私有库,确认你的GitHub账号已被添加为协作者(Collaborator)或属于有权限的Team;
  • 企业防火墙拦截SSH端口:某些公司网络屏蔽22端口。解决方案:在~/.ssh/config中强制走HTTPS端口(443):
Host github.com HostName ssh.github.com Port 443 User git IdentityFile ~/.ssh/id_rsa

然后用git@github.com:user/repo.gitURL即可,Git会自动走443端口。

5.3 IDEA内置Terminal的“幽灵故障”:为什么它总连不上SSH

IDEA内置Terminal(Terminal工具窗口)是一个独立的shell进程,它不继承系统终端的环境变量,尤其是SSH_AUTH_SOCK。所以你在系统Terminal里ssh-add成功了,在IDEA Terminal里执行ssh -T仍会失败。

解决方案有三:

  1. 终极推荐:完全不用IDEA Terminal做Git操作。所有配置、验证、调试都在系统终端完成,IDEA只负责图形化Commit/Push;
  2. 临时修复:在IDEA Terminal里手动导出环境变量。先在系统终端执行echo $SSH_AUTH_SOCK,复制输出值(如/private/tmp/com.apple.launchd.XYZ/Listeners),然后在IDEA Terminal里执行export SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.XYZ/Listeners;
  3. 一劳永逸:在IDEA Settings → Tools → Terminal → Shell path,改为/bin/zsh -i(macOS)或C:\Program Files\Git\bin\bash.exe --login(Windows),让IDEA Terminal以登录shell模式启动,自动加载~/.zshrc或~/.bashrc里的eval $(ssh-agent)。

5.4 其他高频问题速查表

报错信息可能原因快速验证命令解决方案
fatal: unable to access 'https://...': Could not resolve host: github.comDNS解析失败或网络不通ping github.com检查网络连接,或临时换DNS(如8.8.8.8)
error: failed to push some refs to 'git@github.com:...'远程有新commit(如别人Push了README),本地未Pullgit status先git pull origin main --rebase,再git push
ssh: connect to host github.com port 22: Connection refused22端口被防火墙屏蔽nc -zv github.com 22改用443端口(见5.2节config配置)
IDEA里Push按钮灰色不可点项目未添加到Git,或未Commit任何文件VCS → Git → Show History确认已执行Add和Commit,且Commit message非空

最后分享一个小技巧:当你反复调试仍不成功,不妨新建一个最简项目验证。在桌面建test-git文件夹,放一个README.md,用IDEA打开→Create Git Repository→Add Remote→Commit and Push。如果这个能成功,说明你的全局SSH配置没问题,问题一定出在原项目的特定配置(如.git/config文件被手动改坏)。这是快速隔离问题边界的黄金法则。

我在实际操作中发现,真正卡住开发者的从来不是技术多难,而是信息碎片化——教程A说用Ed25519,教程B说必须RSA;文档C教你改~/.ssh/config,文档D说不用配。这种矛盾让人无所适从。所以这篇内容坚持一个原则:所有结论都有实测依据,所有步骤都标注了“为什么必须这样做”。比如为什么chmod 700 ~/.ssh是强制的?因为OpenSSH协议规定,如果.ssh目录权限大于700(如755),ssh-agent会拒绝读取私钥,这是写死在源码里的安全策略。知道这个,你就不会再疑惑“为什么教程非要让我改权限”。

这个配置过程,本质上是在你的电脑和GitHub之间架设一条受信任的加密隧道。它不需要你成为密码学专家,但需要你理解每个环节的职责:密钥生成是造钥匙,ssh-agent是保管箱,GitHub公钥绑定是登记备案,IDEA URL配置是指定入口。四者缺一不可,环环相扣。当你某天在新电脑上重装环境,能不查资料、5分钟内完成全部配置,你就真正掌握了这个技能。

返回列表