aboutsummaryrefslogtreecommitdiffstats
path: root/modules/setting
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-07-10 14:50:26 +0800
committerGitHub <noreply@github.com>2022-07-10 14:50:26 +0800
commit27e2def5f0390a9f8d1e059c83783f7d2abd0019 (patch)
tree37b7acf2e2df4d13cd3117728a5de3db9488007a /modules/setting
parenta9e66cfdad6ec67194a2257a3ccdfc26b7c2054d (diff)
downloadgitea-27e2def5f0390a9f8d1e059c83783f7d2abd0019.tar.gz
gitea-27e2def5f0390a9f8d1e059c83783f7d2abd0019.zip
Refactor SSH init code, fix directory creation for TrustedUserCAKeys file (#20299)
* Refactor SSH init code, fix directory creation for TrustedUserCAKeys file * Update modules/ssh/init.go Co-authored-by: zeripath <art27@cantab.net> * fix lint copyright * Update modules/ssh/init.go Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/setting')
-rw-r--r--modules/setting/setting.go21
1 files changed, 4 insertions, 17 deletions
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 1bd9e09a7a..23e3280dc9 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -840,8 +840,9 @@ func loadFromConf(allowEmpty bool, extraConfig string) {
SSH.StartBuiltinServer = false
}
- trustedUserCaKeys := sec.Key("SSH_TRUSTED_USER_CA_KEYS").Strings(",")
- for _, caKey := range trustedUserCaKeys {
+ SSH.TrustedUserCAKeysFile = sec.Key("SSH_TRUSTED_USER_CA_KEYS_FILENAME").MustString(filepath.Join(SSH.RootPath, "gitea-trusted-user-ca-keys.pem"))
+
+ for _, caKey := range SSH.TrustedUserCAKeys {
pubKey, _, _, _, err := gossh.ParseAuthorizedKey([]byte(caKey))
if err != nil {
log.Fatal("Failed to parse TrustedUserCaKeys: %s %v", caKey, err)
@@ -849,7 +850,7 @@ func loadFromConf(allowEmpty bool, extraConfig string) {
SSH.TrustedUserCAKeysParsed = append(SSH.TrustedUserCAKeysParsed, pubKey)
}
- if len(trustedUserCaKeys) > 0 {
+ if len(SSH.TrustedUserCAKeys) > 0 {
// Set the default as email,username otherwise we can leave it empty
sec.Key("SSH_AUTHORIZED_PRINCIPALS_ALLOW").MustString("username,email")
} else {
@@ -858,20 +859,6 @@ func loadFromConf(allowEmpty bool, extraConfig string) {
SSH.AuthorizedPrincipalsAllow, SSH.AuthorizedPrincipalsEnabled = parseAuthorizedPrincipalsAllow(sec.Key("SSH_AUTHORIZED_PRINCIPALS_ALLOW").Strings(","))
- if !SSH.Disabled && !SSH.StartBuiltinServer {
- if err = os.MkdirAll(SSH.KeyTestPath, 0o644); err != nil {
- log.Fatal("Failed to create '%s': %v", SSH.KeyTestPath, err)
- }
-
- if len(trustedUserCaKeys) > 0 && SSH.AuthorizedPrincipalsEnabled {
- fname := sec.Key("SSH_TRUSTED_USER_CA_KEYS_FILENAME").MustString(filepath.Join(SSH.RootPath, "gitea-trusted-user-ca-keys.pem"))
- if err := os.WriteFile(fname,
- []byte(strings.Join(trustedUserCaKeys, "\n")), 0o600); err != nil {
- log.Fatal("Failed to create '%s': %v", fname, err)
- }
- }
- }
-
SSH.MinimumKeySizeCheck = sec.Key("MINIMUM_KEY_SIZE_CHECK").MustBool(SSH.MinimumKeySizeCheck)
minimumKeySizes := Cfg.Section("ssh.minimum_key_sizes").Keys()
for _, key := range minimumKeySizes {