Fix: KeyboardInteractive Login

+ Include KeyboardInteractive in decision if NoClientAuth should be performed
+ Add option for KeyboardInteractive
This commit is contained in:
Philipp Lehmann 2021-02-01 19:53:38 +01:00 committed by Kaleb Elwert
parent fb34512070
commit 1593226ea9
2 changed files with 8 additions and 1 deletions

@ -42,6 +42,13 @@ func HostKeyFile(filepath string) Option {
}
}
func KeyboardInteractiveAuth(fn KeyboardInteractiveHandler) Option {
return func(srv *Server) error {
srv.KeyboardInteractiveHandler = fn
return nil
}
}
// HostKeyPEM returns a functional option that adds HostSigners to the server
// from a PEM file as bytes.
func HostKeyPEM(bytes []byte) Option {

@ -124,7 +124,7 @@ func (srv *Server) config(ctx Context) *gossh.ServerConfig {
for _, signer := range srv.HostSigners {
config.AddHostKey(signer)
}
if srv.PasswordHandler == nil && srv.PublicKeyHandler == nil {
if srv.PasswordHandler == nil && srv.PublicKeyHandler == nil && srv.KeyboardInteractiveHandler == nil {
config.NoClientAuth = true
}
if srv.Version != "" {