configure internal ssh server w/ macs and ciphers, backport of #14523 (#14530)

This commit is contained in:
Stefan 2021-01-30 20:57:31 +01:00 committed by GitHub
parent 446c06b817
commit 7dddf2186b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -196,13 +196,17 @@ func publicKeyHandler(ctx ssh.Context, key ssh.PublicKey) bool {
// Listen starts a SSH server listens on given port. // Listen starts a SSH server listens on given port.
func Listen(host string, port int, ciphers []string, keyExchanges []string, macs []string) { func Listen(host string, port int, ciphers []string, keyExchanges []string, macs []string) {
// TODO: Handle ciphers, keyExchanges, and macs
srv := ssh.Server{ srv := ssh.Server{
Addr: fmt.Sprintf("%s:%d", host, port), Addr: fmt.Sprintf("%s:%d", host, port),
PublicKeyHandler: publicKeyHandler, PublicKeyHandler: publicKeyHandler,
Handler: sessionHandler, Handler: sessionHandler,
ServerConfigCallback: func(ctx ssh.Context) *gossh.ServerConfig {
config := &gossh.ServerConfig{}
config.KeyExchanges = keyExchanges
config.MACs = macs
config.Ciphers = ciphers
return config
},
// We need to explicitly disable the PtyCallback so text displays // We need to explicitly disable the PtyCallback so text displays
// properly. // properly.
PtyCallback: func(ctx ssh.Context, pty ssh.Pty) bool { PtyCallback: func(ctx ssh.Context, pty ssh.Pty) bool {