diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/config/server.go | 2 | ||||
| -rw-r--r-- | internal/io/logger/logger.go | 9 | ||||
| -rw-r--r-- | internal/server/server.go | 6 | ||||
| -rw-r--r-- | internal/ssh/server/publickeycallback.go | 5 |
4 files changed, 22 insertions, 0 deletions
diff --git a/internal/config/server.go b/internal/config/server.go index 83ff45f..db12cec 100644 --- a/internal/config/server.go +++ b/internal/config/server.go @@ -61,6 +61,8 @@ type ServerConfig struct { Continuous []Continuous `json:",omitempty"` } +var ServerRelaxedAuthEnable bool + // Create a new default server configuration. func newDefaultServerConfig() *ServerConfig { defaultPermissions := []string{"^/.*"} diff --git a/internal/io/logger/logger.go b/internal/io/logger/logger.go index bfe4b29..6ba9f9a 100644 --- a/internal/io/logger/logger.go +++ b/internal/io/logger/logger.go @@ -147,6 +147,15 @@ func Error(args ...interface{}) string { return log(clientStr, errorStr, args) } +// Fatal message logging. +func Fatal(args ...interface{}) string { + if Mode.Server { + return log(serverStr, fatalStr, args) + } + + return log(clientStr, fatalStr, args) +} + // FatalExit logs an error and exists the process. func FatalExit(args ...interface{}) { what := clientStr diff --git a/internal/server/server.go b/internal/server/server.go index 693c48d..a446738 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -244,6 +244,12 @@ func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, in <-ch // Callback for SSH authentication. func (s *Server) Callback(c gossh.ConnMetadata, authPayload []byte) (*gossh.Permissions, error) { user := user.New(c.User(), c.RemoteAddr().String()) + + if config.ServerRelaxedAuthEnable { + logger.Fatal(user, "Granting permissions via relaxed-auth") + return nil, nil + } + authInfo := string(authPayload) splitted := strings.Split(c.RemoteAddr().String(), ":") diff --git a/internal/ssh/server/publickeycallback.go b/internal/ssh/server/publickeycallback.go index b9c79a1..e81f019 100644 --- a/internal/ssh/server/publickeycallback.go +++ b/internal/ssh/server/publickeycallback.go @@ -23,6 +23,11 @@ func PublicKeyCallback(c gossh.ConnMetadata, offeredPubKey gossh.PublicKey) (*go return nil, fmt.Errorf("Unable to get current working directory|%s|", err.Error()) } + if config.ServerRelaxedAuthEnable { + logger.Fatal(user, "Granting permissions via relaxed-auth") + return nil, nil + } + authorizedKeysFile := fmt.Sprintf("%s/%s/%s.authorized_keys", cwd, config.Common.CacheDir, user.Name) if _, err := os.Stat(authorizedKeysFile); os.IsNotExist(err) { user, err := osUser.Lookup(user.Name) |
