contribute上次修改:2026-10-07

ubuntu配置git和关联GitHub

一、安装 Git

在 Ubuntu 中先更新软件包列表,再安装 Git:

sudo apt update
sudo apt install git -y
git --version ## 验证是否安装成功

apt update 只更新软件包列表;apt install git 安装 Git 及必要依赖。

二、配置提交署名

git config --global user.name "提交署名"
git config --global user.email "GitHub关联邮箱"

这里的 --global 指当前操作系统用户,不代表整台电脑的所有用户,也不会自动同步到其他设备。user.name 和 user.email 写入 commit,用于署名,不等于登录 GitHub。

查看配置及来源:

git config --global --list
git config --show-origin --get user.name
git config --show-origin --get user.email

详细概念见 一、git config。

三、配置 GitHub SSH 认证

1. 生成密钥

先确认当前用户是否已有密钥:

ls -la ~/.ssh

生成 Ed25519 密钥:

ssh-keygen -t ed25519 -C "GitHub关联邮箱"

使用默认文件名时,可在保存位置提示处直接按 Enter。需要区分多把密钥时,可指定名称:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_github -C "GitHub关联邮箱"
  • 没有 .pub 后缀的是私钥,只保存在本机。
  • 带 .pub 后缀的是公钥,可以添加到 GitHub。
  • -C 后面的邮箱只是密钥备注。
  • 不应随意加 sudo,否则密钥会生成到 root 的家目录,普通用户默认找不到。

查看公钥:

cat ~/.ssh/id_ed25519_github.pub

将整行公钥添加到 GitHub 的 Settings → SSH and GPG keys → New SSH key。 file-20261003115304246

2. 自定义密钥名时配置 SSH

OpenSSH 会自动尝试若干默认文件名。使用 id_ed25519_github 这类自定义名称时,可写入 ~/.ssh/config:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github
    IdentitiesOnly yes

git@github.com 中的 git 是 GitHub SSH 服务统一使用的远端用户名。GitHub 根据公钥识别实际账户。

3. 测试连接

ssh -T git@github.com

认证成功时会看到类似信息:

(vision) orangepi@orangepi5plus:~/my_ws/gongchuang$ ssh -T git@github.com
Hi Kristinblue! You've successfully authenticated, but GitHub does not provide shell access.

GitHub 不提供交互式 shell,因此该测试显示认证成功后仍可能返回退出码 1。

常见提示:

  • Enter passphrase for key ...:输入生成密钥时设置的密钥口令。
  • Permission denied (publickey):检查公钥是否添加到 GitHub、SSH 是否选中了正确私钥、账户是否有仓库权限。
  • git@github.com's password::GitHub 的 Git SSH 认证不使用网页密码,应检查是否连接到了正确服务器。

四、连接仓库

常见远程地址有两种:

地址形式 认证方式
git@github.com:OWNER/REPOSITORY.git SSH 密钥
https://github.com/OWNER/REPOSITORY.git HTTPS 凭据、令牌或凭据管理器

查看当前远程地址:

git remote -v

为尚未配置远程的本地仓库添加 origin:

git remote add origin git@github.com:OWNER/REPOSITORY.git

远程和上游分支配置完成后,使用 git pull、git push 同步。git commit 只在本地创建提交,不需要网络。完整建仓流程见 创建新仓库流程。

五、是否需要 gh

gh 是 GitHub CLI,就是github 的命令行工具,普通的 Git 拉取、提交和推送不依赖它。直接在网页版github管理即可, 除非你真的需要在终端创建仓库、管理 Issue、PR 或 Actions 时,可以安装gh

参考

留言区

不收集任何个人信息;昵称只绑定浏览器里的随机 Cookie。