在不打开管理用户的情况下设置 git SSH 服务器

Posted

技术标签:

【中文标题】在不打开管理用户的情况下设置 git SSH 服务器【英文标题】:Setup git SSH server without opening up the management users 【发布时间】:2021-06-21 03:04:12 【问题描述】:

目前我正在建立一个 Gitlab 服务器。 将 ssh 端点暴露给互联网(因为这是默认的 git 协议)并仍然允许 ssh 管理服务器的好方法是什么。

允许管理(受密码保护的)用户从 Internet 进行身份验证似乎不是很“安全”。

我可以限制某个用户 (git) 仅从特定 IP 地址连接,因为防火墙 + 反向代理将到位。

感谢你们分享的任何信息!

【问题讨论】:

这个techietown.info/2017/05/… 怎么样? 【参考方案1】:

我只需要为我的商店这样做:

    SSH 端口 22 永远不会(在大公司环境中)向 Internet 开放,甚至不会向企业负载均衡器/反向代理重定向流量开放:根据我的经验,它不是一个允许的公共入口点 应该在该 GitLab 服务器上定义一个专用的 SSH 端口,它有自己的 SSH 守护进程,其中: 只允许一个专用帐户 (AllowUsers) 无法进行交互式会话 (PasswordAuthentication no) 只是~git/.ssh/authorized_keys中使用的强制命令,调用gitlab_shell 负载平衡器/反向代理(通常为 F5 in big company,如 reverse-proxy)会将公共 22 端口从 DMZ 重定向到服务器上的专用 SSH 端口

【讨论】:

感谢更新,这让我指出了正确的方向。使用您提供的指针,我找到了这篇文章***.com/questions/61443935/…。然后我在这里找到了一个 hardend sshd 文件:github.com/k4yt3x/sshd_config/blob/master/sshd_config @TomDierckx 很好。这应该确实有效。

以上是关于在不打开管理用户的情况下设置 git SSH 服务器的主要内容,如果未能解决你的问题,请参考以下文章

在服务器上搭建git仓库

git 命令

git 命令

git设置用户名密码并设置ssh秘钥

7.14 Git 工具 - 凭证存储

在不使用 ssh 的情况下更改远程目录所有权