完全不建议使用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