快速配置在Linux上的git

在一台新机器上配置 Git,本质上只需要搞定两件事:

  1. Git 自身的配置 —— 也就是 ~/.gitconfig,管的是用户信息、别名这些个性化设置。
  2. SSH 的配置 —— 也就是 ~/.ssh 目录,管的是你和远程仓库(如 GitHub)之间的身份认证。

把这两份配置理清楚、跨平台备份好,以后到新客户机上几分钟就能恢复完整的 Git 使用环境。

一、Git 自身配置:.gitconfig

~/.gitconfig 是可以完全个性化的一份配置,最常用的功能是别名(alias),可以把常用的组合命令简化成一条短命令。比如我自己很喜欢的一个别名:

1
2
[alias]
    cpm = "!f() { git commit -m \"$1\" && git push; }; f"

配置好之后,提交并推送只需要一行:

1
git cpm "update"

~/.gitconfig 里只保留跨平台通用的配置(用户名、邮箱、别名等),不要放任何密钥或本机专属路径,这样才能直接复制到新机器上使用。

二、SSH 配置与连接

Git 的 remote 有多种协议(HTTPS、SSH 等),日常开发中最常用的是 SSH。SSH 既可以用来登录服务器,也可以用来完成 Git 的 remote 交互,配置一次即可两者通用。

1. 生成 Ed25519 密钥

现在推荐使用 Ed25519 算法生成密钥,相比传统的 RSA,它的密钥更短、性能更好、安全性也更高:

1
ssh-keygen -t ed25519 -C "your_email@example.com"
  • -t ed25519:指定密钥类型为 Ed25519
  • -C:添加注释,通常填邮箱方便识别

执行后会依次提示:

  • 保存路径:直接回车使用默认路径 ~/.ssh/id_ed25519,或者自定义一个路径(比如按用途区分多把 key)
  • passphrase(密钥口令):建议设置一个口令,为私钥再加一层保护

生成完成后会得到一对密钥:

  • id_ed25519(或自定义文件名)—— 私钥,永远不要分享给任何人
  • id_ed25519.pub(或 xxx.pub)—— 公钥,需要添加到 GitHub / GitLab 等平台

2. 配置 ~/.ssh/config

~/.ssh 目录下有一个核心配置文件,文件名就是 config(没有扩展名)。用于 Git 推送的 SSH 配置,以 GitHub 为例:

1
2
3
4
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/YOUR_KEY
  • Host:为这份配置起的别名,通常直接写域名
  • HostName:实际连接的服务器地址
  • User:Git 服务普遍固定为 git
  • IdentityFile:指向上一步生成的私钥路径

如果你有多个平台(GitHub、GitLab、公司自建仓库等),可以在同一个 config 文件里继续追加多个 Host 块,分别指定各自的 IdentityFile

3. 把公钥添加到远程平台

打印公钥内容并复制:

1
cat ~/.ssh/id_ed25519.pub

将输出内容粘贴到 GitHub 的 Settings → SSH and GPG keys → New SSH key 页面保存。

4. 测试连接

配置完成后,使用以下命令测试是否连接成功:

1
ssh -T git@github.com

如果看到类似 Hi <username>! You've successfully authenticated... 的提示,说明 SSH 配置已经生效。

三、正确的文件权限

在 Linux 上(我常用的是 Debian),如果用普通用户登录,SSH 对目录和文件的权限要求比较严格,权限不对会导致密钥被 SSH 忽略甚至拒绝连接。

1. .ssh 目录本身只能自己访问:

1
chmod 700 ~/.ssh

2. 私钥文件只能自己读写:

1
chmod 600 ~/.ssh/id_ed25519

这里的 id_ed25519 就是上面生成的私钥文件,公钥(.pub 结尾)权限相对宽松,644 即可,一般不需要额外处理。

路径建议权限说明
~/.ssh700目录仅所有者可读写执行
~/.ssh/id_ed25519(私钥)600仅所有者可读写
~/.ssh/id_ed25519.pub(公钥)644可以被其他人读取
~/.ssh/config600避免被其他用户篡改

四、小结

一份完整的 Git + SSH 环境,其实就是两份配置文件的组合:

  • ~/.gitconfig:跨平台通用,保留用户信息与别名,不含私密信息,可以直接复制。
  • ~/.ssh/config:不含私钥内容,可以直接复制或者手写一份,参数很简单。
  • 私钥(如 id_ed25519)本身不要跨平台复制/共享,新机器上按需重新生成一对,并把公钥添加到对应平台即可。

按照「生成密钥 → 配置 SSH → 添加公钥 → 校正权限」这四步,几分钟就能在一台新机器上重新用上熟悉的 Git 和远程仓库。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy