Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Directly expose the SSH server KEXT, MAC and Cipher algorithms #86

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion server.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ type Server struct {
IdleTimeout time.Duration // connection timeout when no activity, none if empty
MaxTimeout time.Duration // absolute connection timeout, none if empty

// Internal x/crypto/ssh config. Note that a number of values in this struct
// are overwritten every time a connection starts, so only use this if you
// know what you're doing and absolutely need to change the internal config
// values.
BaseConfig *gossh.ServerConfig

channelHandlers map[string]channelHandler

listenerWg sync.WaitGroup
Expand All @@ -58,7 +64,13 @@ func (srv *Server) ensureHostSigner() error {
}

func (srv *Server) config(ctx Context) *gossh.ServerConfig {
config := &gossh.ServerConfig{}
// Use the provided base config if set, otherwise default to an empty
// config.
config := srv.BaseConfig
if config == nil {
config = &gossh.ServerConfig{}
}

for _, signer := range srv.HostSigners {
config.AddHostKey(signer)
}
Expand Down Expand Up @@ -87,6 +99,7 @@ func (srv *Server) config(ctx Context) *gossh.ServerConfig {
return ctx.Permissions().Permissions, nil
}
}

return config
}

Expand Down