51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

debain12系统 - 1panel服务器面板安装Gitea容器并配置SSH直通

由于 SSH 在容器内运行,因此,如果需要 SSH 支持,则需要将 SSH 从主机传递到容器。

  • 一种选择是在非标准端口上运行容器 SSH(或将主机端口移至非标准端口);

  • 另一个可能更直接的选择是将 SSH 连接从主机转发到容器。

官方文档: https://docs.gitea.com/zh-cn/next/installation/install-with-docker#ssh-%E5%AE%B9%E5%99%A8%E7%9B%B4%E9%80%9A

1、安装gitea {#1%E3%80%81%E5%AE%89%E8%A3%85gitea}

端口外部访问不需要勾选,http访问走反向代理,SSH访问走主机的SSH直通

2、SSH直通配置 {#2%E3%80%81ssh%E7%9B%B4%E9%80%9A%E9%85%8D%E7%BD%AE}

2.1、创建git用户 {#2.1%E3%80%81%E5%88%9B%E5%BB%BAgit%E7%94%A8%E6%88%B7}

使用ssh连接到服务器,输入命令sudo adduser git创建git用户

sudo adduser git

创建账户时,请设置一个强密码并再次输入以确认,创建账户完善所有信息,可直接回车使用默认值直到账户创建完成。

2.2、git用户的UID和GID查看 {#2.2%E3%80%81git%E7%94%A8%E6%88%B7%E7%9A%84uid%E5%92%8Cgid%E6%9F%A5%E7%9C%8B}

创建账户时已经显示UIDGID,若遗忘可使用命令查看并记录下来。

使用ssh连接到服务器,输入命令id git查看,本例中的UIDGID均为1000

id git

2.3、创建git用户密钥 {#2.3%E3%80%81%E5%88%9B%E5%BB%BAgit%E7%94%A8%E6%88%B7%E5%AF%86%E9%92%A5}

使用ssh连接到服务器,输入命令sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"创建密钥,按回车键直至创建完成。

sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"

2.4、写入公钥到认证文件 {#2.4%E3%80%81%E5%86%99%E5%85%A5%E5%85%AC%E9%92%A5%E5%88%B0%E8%AE%A4%E8%AF%81%E6%96%87%E4%BB%B6}

使用ssh连接到服务器,输入命令echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys,将刚刚创建的公钥信息写入到/home/git/.ssh/authorized_keys文件。

echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys

2.5、创建脚本文件 {#2.5%E3%80%81%E5%88%9B%E5%BB%BA%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6}

1panel系统 - 文件中进入/usr/local/bin文件夹,创建gitea文件,点击权限位置,将gitea文件的权限修改为0777

编辑gitea文件,输入下方指令内容:

ssh -p 222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"

其中ssh -p 222222端口需要修改为创建gitea容器时使用的SSH端口

2.6、编辑gitea容器 {#2.6%E3%80%81%E7%BC%96%E8%BE%91gitea%E5%AE%B9%E5%99%A8}

1panel应用商店 - 已安装 中找到gitea应用,点击参数 - 高级设置选中编辑compose文件

environment的下方修改USER_UIDUSER_GID的值为git用户UIDGID,修改为实际的数值,本列为1000

volumes中将主机的 /home/git/.ssh 装入容器。否则,SSH 身份验证将无法在容器内运行。

            - /home/git/.ssh/:/data/git/.ssh

2.7、修改git用户文件夹的用户及用户组 {#2.7%E3%80%81%E4%BF%AE%E6%94%B9git%E7%94%A8%E6%88%B7%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E7%94%A8%E6%88%B7%E5%8F%8A%E7%94%A8%E6%88%B7%E7%BB%84}

1panel系统 - 文件中进入home文件夹,点击git文件夹用户用户组

修改git文件夹用户用户组均为git,同时勾选同时修改子文件属性确保所有文件的用户用户组均为git

2.8、增加gitea密钥 {#2.8%E3%80%81%E5%A2%9E%E5%8A%A0gitea%E5%AF%86%E9%92%A5}


在web端添加SSH公钥

本地电脑生成SSH 密钥对

  • 打开cmd终端窗口。

  • 运行以下命令来生成 SSH 密钥对注意修改邮箱

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  • 按照提示输入文件名(可选),尽量不要更改,避免引起其他麻烦

  • 按照提示输入密码(可选),设置更安全;

  • 获取公钥信息,此公钥即为输入到gitea密钥内容

    cat ~/.ssh/id_rsa.pub

2.9、测试SSH拉取仓库 {#2.9%E3%80%81%E6%B5%8B%E8%AF%95ssh%E6%8B%89%E5%8F%96%E4%BB%93%E5%BA%93}

创建一个测试用的仓库;

若配置成功,则可以正常拉取仓库代码。

3、1panel安装Fail2ban保护SSH {#3%E3%80%811panel%E5%AE%89%E8%A3%85fail2ban%E4%BF%9D%E6%8A%A4ssh}

1panel安装Fail2banhttps://1panel.cn/docs/user_manual/toolbox/fail2ban/

3.1、Fail2ban配置 {#3.1%E3%80%81fail2ban%E9%85%8D%E7%BD%AE}

按需修改最大重试次数禁用时间以及发现周期等;

禁用方式:推荐选择iptables-multiport,只禁用22端口访问,避免自己触发规则后无法访问服务器。

3.2、SSH管理配置 {#3.2%E3%80%81ssh%E7%AE%A1%E7%90%86%E9%85%8D%E7%BD%AE}

1panel系统 - SSH管理,推荐关闭密码认证,配置密钥认证信息并保存好自己的密钥数据;

root用户:选择仅允许密钥登录


赞(3)
未经允许不得转载:工具盒子 » debain12系统 - 1panel服务器面板安装Gitea容器并配置SSH直通