同一个仓库通常有两种地址:
text
https://github.com/<user>/<repo>.git
git@github.com:<user>/<repo>.gitHTTPS 每次推都可能要口令。SSH 把公钥放到远端、私钥留在本机,配对通过就不用反复输入。
先写本机身份
bash
git config --global user.name "your-name"
git config --global user.email "you@example.com"这两行不是可有可无。跳过的话,生成的 key 注释可能对不上你在平台上登记的身份,后面校验会绕弯。
生成密钥
bash
ssh-keygen -t ed25519 -C "you@example.com"一路回车即可。给私钥设口令更安全,但每次用 Git 都要输;本地单机图省事,可以空口令。老环境不支持 ed25519 时再用:
bash
ssh-keygen -t rsa -b 4096 -C "you@example.com"文件在 ~/.ssh/:私钥 id_ed25519(或 id_rsa),公钥 id_ed25519.pub。看公钥:
bash
cat ~/.ssh/id_ed25519.pub把公钥整行贴到 GitHub / GitLab 的 SSH Keys 里。私钥不要发出去。
验证
bash
ssh -T git@github.com看到 successfully authenticated 就对了。GitLab 把主机名换成你的即可。
已经是 HTTPS,改成 SSH
不必重克隆。改 remote:
bash
git remote -v
git remote set-url origin git@github.com:<user>/<repo>.git也可以直接改 .git/config 里 url 那一行。一台电脑一把私钥;公司电脑和家里电脑各生成一把,把两把公钥都加到账号上。