Gogs的SSH配置

于 2021-02-14 发布

完全不建议使用Built-in,因为连上了也不会认证。使用系统自带的openssh的sshd认证会流畅很多。(不得不吐槽,官方documentation简直是一坨屎,根本不能用,连教程都是论坛补充的)

首先按照官方论坛的指引:https://discuss.gogs.io/t/how-to-config-ssh-settings/34,配置SSH_DOMAIN和SSH_PORT。有必要的话可以配置SSH_ROOT_PATH,如果不配置就会是gogs可执行文件所在目录的.ssh文件夹。

然后新建一个独立user用于gogs:

1
useradd -U -M git

注意:一定要让git的登录shell是可以用的,比如bash或者zsh,不能是nologin,否则做git操作的时候会报错protocol错误。

修改gogs的安装目录的权限为git,用:

1
chown -R git:git gogs的安装目录

还需要对配置文件(app.ini)以及systemd服务文件进行相应的修改,这里不多说。

关键的一步,将git用户的home目录更改为gogs的安装目录,否则ssh认证不成功:

1
usermod -d gogs的安装目录 git

之后按照正常流程,生成ssh的公钥私钥,将公钥通过gogs的界面添加到gogs上面就可以了。注意千万不要自己编辑authorized_keys文件。

有需要的话可以配置本地的~/.ssh/config,将主机和私钥配对起来:

1
2
3
4
Host gogs
    HostName git.example.com
    IdentityFile ~/.ssh/id_rsa_gogs
    IdentitiesOnly Yes

目录