CentOS下如何安装Git并配置SSH密钥连接GitHub?

在服务器管理和开发领域,将 CentOS 系统与 GitHub 结合使用是一种非常高效和专业的实践,GitHub 不仅是一个代码托管平台,更是版本控制、协作开发和自动化部署(CI/CD)的核心枢纽,本文将详细介绍如何在 CentOS 环境下安装、配置 Git,并连接到 GitHub 进行日常操作,帮助您构建一个稳定、安全的工作流。

CentOS下如何安装Git并配置SSH密钥连接GitHub?

环境准备与系统更新

在开始安装任何软件之前,确保您的 CentOS 系统是最新的状态,这是一个良好的运维习惯,这可以避免因系统组件过旧而导致的依赖问题或安全漏洞。

通过以下命令更新系统软件包,对于 CentOS 7 及更早版本,使用 yum;对于 CentOS 8 及以上版本,推荐使用 dnf

# 对于 CentOS 7
sudo yum update -y
# 对于 CentOS 8/Stream
sudo dnf update -y

更新完成后,建议安装“开发工具”组,它包含了编译软件所需的一系列基础工具,如 gcc, make 等,这在后续从源码编译 Git 时会用到。

sudo yum groupinstall "Development Tools" -y
# 或
sudo dnf groupinstall "Development Tools" -y

安装 Git 客户端

Git 是与 GitHub 交互的命令行工具,在 CentOS 上,我们有两种主要的安装方式。

通过官方软件仓库安装(推荐)

这是最简单、最快捷的方法,软件仓库中的 Git 版本虽然不是最新的,但足够稳定,能满足绝大多数使用场景。

sudo yum install git -y
# 或
sudo dnf install git -y

安装完成后,可以通过以下命令验证 Git 是否安装成功并查看其版本:

git --version

从源代码编译安装

如果您需要使用 Git 的最新版本,或者官方仓库中的版本无法满足您的需求,可以从源代码编译安装。

  1. 安装依赖:确保已安装上文提到的“开发工具”组,并额外安装一些必要的库,如 curl-devel, expat-devel, gettext-devel, openssl-devel, zlib-devel 等。

    sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
    # 或
    sudo dnf install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
  2. 下载源代码:访问 Git 官网 获取最新版本的 tar.gz 包下载链接,然后使用 wget 下载。

    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.40.1.tar.gz

    (请替换为最新版本号)

  3. 解压、编译和安装

    tar -zxf git-2.40.1.tar.gz
    cd git-2.40.1
    make configure
    ./configure --prefix=/usr/local
    make all
    sudo make install

编译安装完成后,您可以通过 /usr/local/bin/git --version 来验证新版本。

配置 Git 基本信息

安装好 Git 后,第一步是配置您的用户名和电子邮件地址,这些信息会嵌入到您每一次的提交记录中,用于标识作者是谁。

git config --global user.name "您的用户名"
git config --global user.email "您的邮箱@example.com"

使用 --global 参数意味着这台机器上的所有 Git 仓库都会默认使用这个配置,您也可以为特定项目设置不同的用户名和邮箱,只需去掉 --global 参数并在项目目录下执行即可。

CentOS下如何安装Git并配置SSH密钥连接GitHub?

连接 GitHub:SSH 与 HTTPS

连接 GitHub 主要有两种协议:HTTPS 和 SSH,SSH 更安全、更便捷,推荐在开发和服务器环境中使用。

使用 SSH 密钥连接

SSH 使用公钥加密技术进行认证,无需每次推送或拉取代码时都输入密码。

  1. 生成 SSH 密钥
    在终端中输入以下命令,并一路回车使用默认设置即可。

    ssh-keygen -t ed25519 -C "您的邮箱@example.com"

    这会在您的用户主目录下的 .ssh 文件夹中生成两个文件:id_ed25519(私钥,必须妥善保管)和 id_ed25519.pub(公钥,需要提供给 GitHub)。

  2. 将公钥添加到 GitHub
    复制公钥文件的内容:

    cat ~/.ssh/id_ed25519.pub

    登录您的 GitHub 账户,进入右上角的 Settings > SSH and GPG keys,点击 New SSH key,将刚才复制的内容粘贴到 Key 文本框中,并为这个密钥起一个便于识别的标题(如 “My CentOS Server”),然后保存。

  3. 测试连接
    在 CentOS 终端中执行以下命令来测试 SSH 连接是否成功。

    ssh -T git@github.com

    首次连接时,系统会询问您是否信任 GitHub 的指纹,输入 yes 即可,如果看到 “Hi xxx! You’ve successfully authenticated…” 的欢迎信息,说明连接已经建立成功。

使用 HTTPS 连接

HTTPS 方式相对简单,直接使用 GitHub 的用户名和密码(或 Personal Access Token,个人访问令牌)进行认证,出于安全考虑,GitHub 已于 2021 年 8 月停止支持使用密码进行 Git 操作,推荐使用 Personal Access Token (PAT)。

您需要在 GitHub 的 Settings > Developer settings > Personal access tokens 中生成一个具有适当权限(如 repo)的令牌,在操作 Git 时,当提示输入密码时,输入这个令牌即可。

常用 Git 工作流程

配置完成后,您就可以开始在 CentOS 上与 GitHub 进行交互了,以下是一个基本的克隆、修改、提交、推送的工作流程。

  1. 克隆仓库
    使用 git clone 命令将 GitHub 上的仓库复制到本地。

    # 使用 SSH 方式克隆(推荐)
    git clone git@github.com:用户名/仓库名.git
    # 使用 HTTPS 方式克隆
    git clone https://github.com/用户名/仓库名.git
  2. 日常操作
    进入项目目录后,您可以进行修改、添加文件等操作。

命令 描述 示例
git status 查看当前工作区的状态,了解哪些文件被修改或新增 git status
git add <文件> 将文件的更改添加到暂存区,准备提交 git add README.md
git commit -m "提交信息" 将暂存区的更改提交到本地仓库,并附上说明 git commit -m "Fix a bug"
git push 将本地仓库的提交推送到远程 GitHub 仓库 git push origin main
git pull 从远程仓库拉取最新的更改到本地,并自动合并 git pull origin main

掌握以上核心步骤,您就已经成功在 CentOS 上搭建了与 GitHub 协同工作的基础环境,您可以根据项目需求,进一步学习 Git 的分支管理、变基(rebase)、以及利用 GitHub Actions 实现更强大的自动化部署流程。

CentOS下如何安装Git并配置SSH密钥连接GitHub?


相关问答FAQs

Q1: 我在使用 git push 时,系统提示 “Permission denied (publickey). fatal: Could not read from remote repository.”,这是什么原因造成的?我该如何解决?

A1: 这是一个非常典型的 SSH 认证失败问题,它意味着 GitHub 服务器无法通过您提供的 SSH 密钥来验证您的身份,请按照以下步骤排查:

  1. 检查本地密钥是否存在:确认 ~/.ssh/ 目录下是否有 id_ed25519(或 id_rsa)私钥文件,如果不存在,说明您可能没有生成密钥,或者密钥文件丢失了,需要重新运行 ssh-keygen 生成。
  2. 检查 SSH Agent 是否加载了私钥:在某些情况下,您需要将私钥添加到 ssh-agent 中,可以执行以下命令:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519

    如果提示 “Identity added”,则说明加载成功。

  3. 检查公钥是否正确添加到 GitHub:登录 GitHub,进入 Settings > SSH and GPG keys,仔细核对您添加的公钥内容是否与 cat ~/.ssh/id_ed25519.pub 的输出完全一致,注意不要有多余的空格或换行符。
  4. 确认使用了正确的仓库 URL:在您克隆或添加远程仓库时,要确保使用的是 git@github.com:... 开头的 SSH 格式 URL,而不是 https://github.com/... 格式,您可以用 git remote -v 查看当前配置的远程地址。

Q2: 我之前一直使用 HTTPS 协议,现在想切换到 SSH 协议,应该怎么操作,而不需要重新克隆整个仓库?

A2: 您完全不需要重新克隆仓库,Git 提供了非常方便的命令来修改远程仓库的 URL,操作如下:

  1. 确认您当前仓库的远程仓库名称,通常默认为 origin

    git remote -v

    您会看到类似下面的输出,显示了抓取 和推送 两个操作的 URL。

    origin  https://github.com/用户名/仓库名.git (fetch)
    origin  https://github.com/用户名/仓库名.git (push)
  2. 使用 git remote set-url 命令将 URL 从 HTTPS 格式更改为 SSH 格式。

    git remote set-url origin git@github.com:用户名/仓库名.git

    请务必将 用户名/仓库名.git 替换为您自己的实际信息。

  3. 再次执行 git remote -v 进行验证,您会看到 URL 已经成功更改为 SSH 格式。

    origin  git@github.com:用户名/仓库名.git (fetch)
    origin  git@github.com:用户名/仓库名.git (push)

    完成以上步骤后,您下一次执行 git pullgit push 时,Git 就会尝试通过 SSH 协议与 GitHub 通信了,前提是您已经按照前文所述配置好了 SSH 密钥。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-08 00:29
下一篇 2025-10-08 00:32

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信