Linux系统基于公钥的Git代码仓库访问加固

使用公钥认证访问 Git 仓库可替代密码登录,推荐 ed25519 算法生成密钥,配置 SSH 远程地址,服务端禁用密码登录并限制公钥权限,客户端启用 ssh-agent 保护私钥。

linux系统基于公钥的git代码仓库访问加固

使用公钥认证访问 Git 仓库,能有效替代密码登录,避免凭证泄露风险,是 Linux 下最基础也最关键的加固手段。

生成并管理安全的 SSH 密钥对

密钥强度直接影响安全性。推荐使用 ed25519 算法(速度快、抗量子、密钥短),若需兼容老旧系统,可选 rsa 并确保长度 ≥ 4096 位。

生成命令示例:

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519 -N ""

建议为不同用途(如工作/个人/CI)创建独立密钥,并通过 ~/.ssh/config 文件绑定 Host 别名与对应私钥,避免混用。

配置 Git 远程地址使用 SSH 协议

确认远程仓库 URL 是 SSH 格式(非 HTTPS),典型形式为:git@github.com:username/repo.git 或 git@gitlab.example.com:group/project.git。

若原为 HTTPS 地址,执行以下命令切换:

git remote set-url origin git@host:user/repo.git

之后所有 git push/pull 均走 SSH 通道,自动调用本地密钥。

服务端严格限制公钥权限

在 Git 托管平台(GitHub/GitLab/Gitea)或自建服务中,仅允许上传经过审核的公钥,并禁用密码登录和弱算法(如 ssh-rsa with SHA-1)。

若自建 OpenSSH + Git 服务,检查 /etc/ssh/sshd_config 是否包含:

PubkeyAuthentication yes

PasswordAuthentication no

KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521

CASignatureAlgorithms ssh-ed25519,sk-ssh-ed25519@openssh.com

重启 SSH 服务后生效:sudo systemctl restart sshd。

客户端增强:启用代理与密钥保护

避免私钥长期驻留内存,推荐启用 ssh-agent 并设置超时自动卸载:

qzwx-11md.watchnf.com

qzwx-11qz.watchnf.com

qzwx-11jg.watchnf.com

qzwx-11xtc.watchnf.com

qzwx-11yng.watchnf.com

qzwx-11zh.watchnf.com

sjzwx.watchnf.com

sjzwx-11pp.watchnf.com

sjzwx-11ap.watchnf.com

sjzwx-11jsdd.watchnf.com

sjzwx-11kdy.watchnf.com

sjzwx-11yd.watchnf.com

sjzwx-11baopo.watchnf.com

sjzwx-11baoji.watchnf.com

sjzwx-11licha.watchnf.com

sjzwx-11jjia.watchnf.com

sjzwx-11bojue.watchnf.com

sjzwx-11glsd.watchnf.com

sjzwx-11lg.watchnf.com

sjzwx-11pmqn.watchnf.com

sjzwx-11ykdl.watchnf.com

sjzwx-11fkyb.watchnf.com

sjzwx-11ljdb.watchnf.com

sjzwx-11lls.watchnf.com

sjzwx-11omj.watchnf.com

sjzwx-11wg.watchnf.com

sjzwx-11bnl.watchnf.com

sjzwx-11yubo2.watchnf.com

sjzwx-11xb.watchnf.com

sjzwx-11zls.watchnf.com

sjzwx-11xne.watchnf.com

sjzwx-11pnh.watchnf.com

sjzwx-11gp.watchnf.com

sjzwx-11bql.watchnf.com

sjzwx-11fml.watchnf.com

sjzwx-11lq.watchnf.com

sjzwx-11dd.watchnf.com

sjzwx-11tghy.watchnf.com

sjzwx-11ld.watchnf.com

sjzwx-11wbl.watchnf.com

sjzwx-11md.watchnf.com

sjzwx-11ts.watchnf.com

sjzwx-11jg.watchnf.com

sjzwx-11xtc.watchnf.com

sjzwx-11mh.watchnf.com

sjzwx-11yng.watchnf.com

sjzwx-11zh.watchnf.com

tjwx.watchnf.com

eval "$(ssh-agent -s)"

ssh-add -t 3600 ~/.ssh/id_ed25519

还可配合 gpg-agent 或硬件密钥(YubiKey)存储私钥,实现物理级防护。

对于 CI/CD 环境,使用部署密钥(Deploy Keys)而非用户密钥,并限定只读或单仓库权限,最小化暴露面。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容