Linux与macOS下Git安装及SSH配置教程
# 前言
近期工作需要,所以版本管理工具要用到Git,某些操作需要ssh进行操作,在某次操作中遇到:git bash报错:Permission denied, please try again。经排查是ssh没有配置我的key,所以就借着这篇文章整理了一下关于Git的安装以及SSH配置过程。
我是 SharkChili,Java 开发者,Java Guide开源项目维护者。欢迎关注我的公众号:写代码的SharkChili,也欢迎您了解我的开源项目 mini-redis:https://github.com/shark-ctrl/mini-redis。
为方便与读者交流,现已创建读者群。关注上方公众号获取我的联系方式,添加时备注加群即可加入。
# 可以外网的用户安装步骤
如果可以联网,根据系统选择对应的包管理器即可完成安装:
# RHEL / CentOS / Fedora
yum -y install git # 或 dnf install git
# Debian / Ubuntu
sudo apt update && sudo apt install -y git
# macOS(需先安装 Homebrew)
brew install git
2
3
4
5
6
7
8
# 离线用户安装步骤
# 下载git安装包
到达下面这个地址找到Linux的安装包即可。
https://git-scm.com/downloads (opens new window)
如下图所示,首先点击老版本下载,找到对应的Linux安装包

找到适合自己的tar.gz包即可,以笔者为例下载的就是2.39.5的Linux版本:

# 安装Git依赖(可跳过)
安装Git之前使用下面这段命令对需要的依赖进行安装一下,这一步我们可以先跳过,因为现在Linux环境基本不缺乏这些依赖,我们可以在后续的步骤中找到缺失的依赖然后到网上下载对应的包手动安装即可,笔者这一步只是告知读者我们可能需要哪些依赖而已。
yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
2
# 解压tar.gz包
我们将下载的git安装包上传到服务器上,再键入下面的命令进行解压。
tar -zxvf git-2.39.5.tar.gz
2
# 进入解压后的git目录进行编译
完成解压后,需要对git进行编译。
cd git-2.39.5/
如需自定义编译选项(例如指定 OpenSSL 路径),可先执行 ./configure,否则可跳过:
./configure --prefix=/usr/local
键入下面这段命令进行编译:
make prefix=/usr/local all
# 安装git
直接键入下面这条命令完成安装。
make prefix=/usr/local install
# 查看版本号,若存在则安装成功
git --version
2
如下所示,这就说明git安装完成了。
git version 2.39.5
# Git仓库SSH配置
# 为什么需要SSH
我们日常代码可能会通过 GitHub 或 Gitee 来管理。对国内用户而言,GitHub 的 HTTPS(443)链路经常被运营商限速、丢包,导致 git clone、git push 缓慢甚至中断;而 SSH(22 端口)走的是另一条链路,在国内访问 GitHub 时通常更快、更稳定,并且基于密钥对认证免去了反复输密码/PAT 的麻烦。所以完成 Git 安装之后我们还需要配置 SSH。
# 创建SSH密钥
注意:GitHub 自 2022 年 3 月 15 日起不再接受基于 SHA-1 签名的 ssh-rsa 密钥进行连接。虽然 RSA + SHA-2(rsa-sha2-256 / rsa-sha2-512)仍然可用,但社区已普遍推荐使用更现代、更安全、密钥更短的 ed25519 算法。本文统一采用 ed25519。
对于Linux用户,直接命令行即可。对于Windows我们直接打开git bash一样可以执行这个操作。
ssh-keygen -t ed25519 -C "xxxxxx@qq.com"
eval `ssh-agent`
ssh-add ~/.ssh/id_ed25519
2
3
4
# 查看密钥
Linux用户可以通过这条命令查看密钥,对于windows用户可以通过everything等工具全局搜索到这个文件的位置。
cat ~/.ssh/id_ed25519.pub
# 将id_ed25519.pub内容复制到码云或者GitHub

# 测试 SSH 连接是否生效
将对应机子的公钥贴到远程代码仓之后,最轻量的验证方式是直接用 ssh -T 探测一次握手:
ssh -T git@github.com
# 或 ssh -T git@gitee.com
2
看到类似 Hi xxx! You've successfully authenticated... 的输出即说明配置成功。
如果想顺便测试克隆能力,也可以直接克隆一个已有仓库:
git clone git@gitee.com:xxxxx/linux_git_test.git
以笔者为例,仓库被完整的拉取下来了,这就说明本地配置成功了。

# macOS 用户的 SSH 配置
整体来说 macOS 用户配置 SSH key 的步骤和 Linux 用户类似,这里笔者将指令和含义直接贴出来供读者参考:
-- 生成ssh密钥
ssh-keygen -t ed25519 -C "xxx@qq.com"
-- 将SSH密钥添加到ssh-agent: 为了让SSH密钥在新的终端会话中持续有效,您需要将它添加到ssh-agent
eval "$(ssh-agent -s)"
-- 将私钥添加到ssh-agent
ssh-add ~/.ssh/id_ed25519
2
3
4
5
6
7
8
9
经过上述步骤后,我们可以通过如下指令查看公钥并将其添加到git上:
cat ~/.ssh/id_ed25519.pub
完成配置后,我们可以通过下述指令查看配置测试ssh连接是否生效:
ssh -T git@github.com
如果输出下面这段结果则说明本次配置是生效的:

# HTTPS仓库记住账号密码(可选)
此小节仅对使用 HTTPS 协议克隆的仓库有效,已配置 SSH 的读者可跳过。为避免服务器执行pull指令时频繁输入git账户密码,建议读者在完成上述git配置之后,全局执行如下指令记住服务器首次输入的git账户密码信息:
git config --global credential.helper store
# 小结
本文演示git的基本安装和后续ssh配置的等基本工作,希望对你有帮助。
我是 SharkChili,Java 开发者,Java Guide开源项目维护者。欢迎关注我的公众号:写代码的SharkChili,也欢迎您了解我的开源项目 mini-redis:https://github.com/shark-ctrl/mini-redis。
为方便与读者交流,现已创建读者群。关注上方公众号获取我的联系方式,添加时备注加群即可加入。
# 参考
TortoiseGit提示No supported authentication methods available错误: https://blog.csdn.net/Jeffxu_lib/article/details/112259246 (opens new window)
解决GitHub报错You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client: https://blog.csdn.net/wangpaiblog/article/details/124416005 (opens new window)
Mac用户必备:轻松添加Git SSH密钥全攻略:https://zhuanlan.zhihu.com/p/688702074 (opens new window)
- 02
- 详解AI时代下生产力最佳实践—Iterm2+zsh06-12
- 03
- 打造高效mac终端:oh-my-zsh与插件配置06-11