由于作者本人长期使用GitHub,故以此为示例。Gitea、Gitee、GitLab同理。
基本 Git 信息配置
首先我们需要配置Git的基本信息。
git config --global user.name "AH-dark" # 对应 GitHub Username
git config --global user.email "[email protected]" # 对应 GiHub Email
需要注意的是,我们以前所使用的使用账号密码登录 GitHub SSH 的方法已经不被允许。
同时,我建议每个人都为自己的GitHub账户配置2FA身份验证,同时尽量避免使用个人域名邮箱注册GitHub。当你的域名过期或者被弃用,他人只需购买你的域名并进行相关配置即可轻松盗取你的账号。
SSH 公私钥生成
Windows 安装 Git 所带的 Git Bash 或 Linux Terminal 都可以进行此处的配置。
ssh-keygen -t rsa -C "[email protected]"
此后连按三次 Enter 键,使用默认路径即可。
例如,我的SSH公钥生成在 C:\Users\ahdark\.ssh\id_rsa.pub
,私钥在 C:\Users\ahdark\.ssh\id_rsa
。
将私钥添加到 SSH Agent
# 后台启动 SSH Agent
eval $(ssh-agent -s)
# 添加私钥
ssh-add /c/Users/ahdark/.ssh/id_rsa
将公钥添加到 GitHub
- 前往 GitHub Settings – SSH and GPG keys。
- 点击 New SSH Key 添加新的 SSH key
- 前往公钥所在路径,将其内容复制到输入框中。
- 取一个适宜的名字,保存
使用 SSH Clone 仓库
git clone [email protected]:AlphaPic-Storage/frontend.git alphapic-frontend
补充:GPG 密钥提高安全性
可参考之前的文章:Git GnuPG 配置教程
更建议用 https + personal access token 的形式,简单高效(顺带,安装 GitHub Desktop 或者 VSCode 的 GitHub 插件后,登录就会帮你自动配好哦)
至于防伪的需要(git协议允许你自由在commit里标注作者,GitHub的账号只限制repo访问权限),那么应该用 commit 签名
这本质上不符合Git协议标准,但对于GitHub确实安全
主要是 GitHub 这种网站因为有 Web 端的登录(当然也必须有 Web 端),依据木桶效应,即使SSH协议能获得更高的安全性,也难以获得总体上的更高安全级别
而且除非使用了硬件级的加密设备,否则对于自己储存 private key 比储存 password 更安全这件事,我表示怀疑(顺带,现在都流行用
ecdsa
代替rsa
了)这怎么看着像。。水文?