与 github 协作
撰写时间:2026-06-29
修订时间:2026-06-29
概述
GitHub已于2021年8月13日禁用密码认证,改为必须使用Token(令牌)或SSH密钥。同时,SSH协议在国内某些网络环境下比HTTPS更稳定,能有效避免诸如fatal: unable to access '...': Error in the HTTP2 framing layer
等错误。
本文论述如何在NetBeans进行配置以让其能与GitHub的SSH无缝协作。
在本机生成SSH密钥
在终端输入命令:
ssh-keygen是OpenSSH套件自带的用以生成、管理和转换SSH密钥的命令行工具。
选项-t ed25519指定使用Ed25519算法来生成密钥。该算法是一种现代椭圆曲线数字签名算法。特点是速度极快,密钥较RSA短,并且非常安全,因此比RSA 2048/4096更受青睐。其兼容性也很好,几乎所有现代服务器、客户端都支持。
选项-C "your-email@example.com"的作用是向公钥文件.pub末尾添加your-email@example.com的字符,以作为肉眼可读的注释标签。它不是密码或用户名,纯粹是一个标识符,用于帮助我们记住此密钥的用途(例如,工作笔记本电脑、GitHub访问、制作者,等等)。GitHub等平台会显示此注释。
当命令运行时,系统将依次问题2个问题并生成指纹图:
- Enter file in while to save the key:
要将密钥存放在哪里,默认为~/.ssh/id_ed25519,直接回车即可。 - Enter passphrase (empty for no passphrase):
是否需要在每次使用私钥(如git push)时提供一个额外的密码。如果设置,则每次使用私钥时需提供此密码,否则不需要提供。为方便自动化推送,可直接按回车以跳过。 - 生成并打印指纹图。
需要时只需使用命令cat ~/.ssh/id_ed25519.pub查看公钥内容,并将其复制到GitHub上面。
当运行上述命令后,系统将为你创建一对加密钥匙:
- 私钥 (private key):相当于你的身份证,存放在你的电脑中(默认路径为~/.ssh/),绝对不能向别人出示。
- 公钥 (public key):相当于你的身份证复印件,可以放心地将其上传到Github。
在GitHub上录入 SSH
在GitHub=>Settings
=>SSH and GPG keys
中点New SSH key
按钮,在Add new SSH Key
表单中,Title
文本框中输入一个标题。此标题在GitHub显示该公钥时作为标题显示,用以快速标识该公钥的作用,可输入诸如My-MacPro
,用以说明使用哪台电脑所生成。
在Key
文本框中将本地的公钥内容复制上去,然后按Add SSH key
按钮即可生成。
这样便完成了将公钥提交到GitHub的过程。
使用 SSH 克隆 GitHub 仓库
在终端运行命令:
将同时显示从GitHub上自动传送过来的公钥内容,并问是否进行连接。输入yes
,回车。
系统匹配成功后,将更新~/.ssh/known_hosts文件的内容,以名值对的方式github.com ssh-ed25519 ...
添加进该文件中。在命令行中使用cat命令输出该文件内容,即可清晰地看到当前电脑共生成了哪些公钥并上传至哪个网站上了。
最后,顺利地将GitHub仓库克隆至所用电脑的当前路径中。
在 NetBeans 中克隆并配置
如果未在终端中按上一节内容进行克隆,也可在NetBeans中直接克隆。
点击NetBeans的Team
=> Remote
=> Clone
,在Clone Repository
窗口的Repository URL
文本框中填入:
Username
文本框中填入:
选Priviate/Public Key
,并在Priviate Key File
文本框中填写:
如果生成SSH时未输入Passphrase,则Passphrase
文本框内容为空。
在Clone into
文本框中选择存放目的地。
一直单击Next
按钮,直至结束。克隆完毕后,最后一步可能需要选择是否需要在该路径上创建NetBeans项目。如果需要创建,则克隆下来的内容可纳入到NetBeans项目进行管理并运行,且可对项目按右键进行git操作。如果不创建项目,可在Favorites
窗格中先添加克隆的路径,然后即可在NetBeans中方便地打开、编辑、保存、并对相应路径或文件按右键进行git操作。
