Diff
1diff --git a/internal/config/config.go b/internal/config/config.go
2index 3c5037ee73d97516b7308aa4708d83bca50cef19..2b1ad55c368bfb1e57b0ab0f5591910d02430de6 100644
3--- a/internal/config/config.go
4+++ b/internal/config/config.go
5@@ -54,18 +54,20 @@ func NewConfig(cfg *config.Config) (*Config, error) {
6 host := cfg.BindAddr
7 port := cfg.Port
8
9- pks := make([]string, 0, len(cfg.InitialAdminKeys))
10+ pks := make([]string, 0)
11 for _, k := range cfg.InitialAdminKeys {
12 var pk = strings.TrimSpace(k)
13- if bts, err := os.ReadFile(k); err == nil {
14- // pk is a file, set its contents as pk
15- pk = string(bts)
16+ if pk != "" {
17+ if bts, err := os.ReadFile(k); err == nil {
18+ // pk is a file, set its contents as pk
19+ pk = string(bts)
20+ }
21+ // it is a valid ssh key, nothing to do
22+ if _, _, _, _, err := ssh.ParseAuthorizedKey([]byte(pk)); err != nil {
23+ return nil, fmt.Errorf("invalid initial admin key %q: %w", k, err)
24+ }
25+ pks = append(pks, pk)
26 }
27- // it is a valid ssh key, nothing to do
28- if _, _, _, _, err := ssh.ParseAuthorizedKey([]byte(pk)); err != nil {
29- return nil, fmt.Errorf("invalid initial admin key %q: %w", k, err)
30- }
31- pks = append(pks, pk)
32 }
33
34 rs := git.NewRepoSource(cfg.RepoPath)