首页 > 解决方案 > 在不打开管理用户的情况下设置 git SSH 服务器

问题描述

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

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

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

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

标签: gitubuntusecuritysshgitlab

解决方案


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

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

推荐阅读