Gogs与Linux主机共享SSH22端口

前言

Gogs 是一个Git服务器, 跟Github 和 GitLab 很像; 但它是用Go语言编写的, 比GitLab更轻量化, 功能也很齐全.

但是, Gogs不管你是在物理机上面直接搭建的 or 跟我一样使用Docker构建的 Gogs 容器都存在一个问题; 那就是SSH服务已经占用了22端口; 导致你要么更改其他的端口连接到你的服务器或者 Gogs 服务器监听其他的端口上的SSH 连接. 这两种选择对于有强迫症来说, 简直是不能忍!~

git@server_ip:10022/username/project.git    #这是非常不好看的.我希望他跟Github一样的整洁
git@server_ip:username/project.git      #跟Github一样,完美~~

操作步骤

下面我就用详细的操作教你, 在Linux 和 Docker - Gogs 之间共享22端口.

  • 新建一个用户 git 并且给它 UID 1000,GID 1000;

    $ adduser git
  • 下面就可以重新运行Gogs 容器了, 127.0.0.1 环回IP限制只能本地使用SSH服务连接到Gogs, 提高容器的安全性.

    $ docker run --name=gogs -v ~git/gogs:/data -p 127.0.0.1:10022:22 -p 3000:3000 \
    --link=mysql:db -d gogs/gogs
  • 使用刚刚创建的git用户, 创建一个 ~git/gogs/git/.ssh~/.ssh 的链接

    $ su git         # 登录git用户
    $ ln -s ~/gogs/git/.ssh ~/.ssh
  • 为 git 用户生成一个SSH密钥, 并将其添加到 ‘.ssh/authorized_keys’ 中

    $ ssh-keygen -t rsa -P ''        # 全部默认即可, 直接回车
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 为了安全, 还要打开 ~git/.ssh/authorized_keys, 在文件最开始添加以下语句:

    $ vi ~git/.ssh/authorized_keys      # 打开authorized_keys,然后定位到开头的位置
    no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 
    
    # 添加好之后我们查看一下authorized_keys是不是下面这样的形式
    
    $ cat ~git/.ssh/authorized_keys
    > no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa...
  • 好了,到了这里就将近完成了90%,离最后的胜利还差一点点操作. 接下来的操作也是最核心关键的.

    完成了前面的所有操作之后, 我们现在要退出 git用户,用root来操作了哦

    $ mkdir -p /app/gogs/
    $ cat >/app/gogs/gogs <<'END'
    
    
    #!/bin/sh
    
    ssh -p 10022 -o StrictHostKeyChecking=no git@127.0.0.1 \
    "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
    END
    
    $ chmod 755 /app/gogs/gogs       # 授予755权限之后&运行一下

    到这里共享22端口配置就完成了, 只剩下web配置就大功告成了.

  • 打开 Chrome浏览器, 把剩下的配置配置完成就OK了. 注意:web配置里面的ssh端口要填22了哦

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Gogs是一款极易搭建的自助Git服务。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、MacOSX、Windows以及ARM平台。 Gogs功能特性: 支持活动时间线 支持SSH以及HTTP/HTTPS协议 支持SMTP、LDAP和反向代理的用户认证 支持反向代理子路径 支持用户、组织和仓库管理系统 支持添加和删除仓库协作者 支持仓库和组织级别Web钩子(包括Slack集成) 支持仓库Git钩子和部署密钥 支持仓库工单(Issue)、合并请求(Pull Request)、Wiki以及保护分支 支持迁移和镜像仓库以及它的Wiki 支持在线编辑仓库文件和Wiki 支持自定义源的Gravatar和Federated Avatar 支持Jupyter Notebook 支持邮件服务 支持后台管理面板 支持MySQL、PostgreSQL、SQLite3、MSSQL和TiDB(实验性支持)数据库 支持多语言本地化(22种语言) 系统要求: 最低的系统硬件要求为一个廉价的树莓派 如果用于团队项目,建议使用2核CPU及1GB内存 浏览器支持: 请根据Semantic UI查看具体支持的浏览器版本。 官方支持的最小UI尺寸为1024*768,UI不一定会在更小尺寸的设备上被破坏,但我们无法保证且不会修复。 安装部署: 在安装Gogs之前,您需要先安装基本环境。 然后,您可以通过以下5种方式来安装Gogs: 二进制安装 源码安装 包管理安装 采用Docker部署 通过Vagrant安装

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值