git - 在不打开管理用户的情况下设置 git SSH 服务器
问题描述
目前我正在建立一个 Gitlab 服务器。将 ssh 端点暴露给互联网(因为这是默认的 git 协议)并仍然允许 ssh 管理服务器的好方法是什么。
允许管理(受密码保护的)用户从 Internet 进行身份验证似乎不是很“安全”。
我可以限制某个用户(git)仅从特定 IP 地址连接,因为防火墙 + 反向代理将到位。
感谢你们可以分享的任何信息!
解决方案
我只需要为我的商店这样做:
- SSH 端口 22 永远不会(在大公司环境中)向互联网开放,甚至不会向企业负载均衡器/反向代理重定向流量开放:根据我的经验,它不是一个允许的公共入口点
- 应该在该 GitLab 服务器上定义一个专用的 SSH 端口,它有自己的 SSH 守护进程,其中:
- 只允许一个专用帐户 (
AllowUsers
) - 无法进行交互式会话 (
PasswordAuthentication no
) - 中仅使用了一个强制命令
~git/.ssh/authorized_keys
,调用gitlab_shell
- 只允许一个专用帐户 (
- 负载均衡器/反向代理(通常是大公司的 F5,作为反向代理)会将公共 22 端口从 DMZ 重定向到服务器上的专用 SSH 端口
推荐阅读
- android - gradle中的依赖冲突
- linux - 仅修补和构建一个内核模块(Ubuntu 19)
- python-3.8 - 如何解决 Python 中的内存错误?
- amazon-web-services - AWS RDS 数据库创建限制
- r - 定义组,然后是子组
- python - 如何将 django-bootstrap-datepicker-plus TimePickerInput 与 am/pm 一起使用?
- c++ - 该函数的运行时效率如何提高?
- java - 滑动过渡以返回有效,但按下返回按钮不会返回
- dependencies - Zlib 未安装在 Cygwin 中 - Kaldi
- javascript - webpack 命令正在从 .ts 文件转换的 .js 文件底部添加长注释