diff --git a/server/keys.go b/server/keys.go index b09044a..6bba1b2 100644 --- a/server/keys.go +++ b/server/keys.go @@ -3,6 +3,7 @@ package main import ( "crypto/rand" "encoding/base64" + "errors" "os" "path/filepath" @@ -25,6 +26,16 @@ func LoadAuthorizedKeys() (map[string]ssh.PublicKey, error) { return nil, err } + if _, err := os.Stat(path); err != nil { + if os.IsNotExist(err) { + return nil, errors.New("authorized_keys file is missing") + } else if os.IsPermission(err) { + return nil, errors.New("no permissions to read authorized_keys file") + } + + return nil, err + } + keys := make(map[string]ssh.PublicKey) data, err := os.ReadFile(path)