diff options
Diffstat (limited to 'internal/ssh/client/authmethods.go')
| -rw-r--r-- | internal/ssh/client/authmethods.go | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/internal/ssh/client/authmethods.go b/internal/ssh/client/authmethods.go index 967866f..44c5601 100644 --- a/internal/ssh/client/authmethods.go +++ b/internal/ssh/client/authmethods.go @@ -1,18 +1,30 @@ package client import ( + "os" + "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/ssh" - "os" gossh "golang.org/x/crypto/ssh" ) -// InitSSHAuthMethods initialises all known SSH auth methods on othe client side. -func InitSSHAuthMethods(trustAllHosts bool, throttleCh chan struct{}) ([]gossh.AuthMethod, *HostKeyCallback) { - var sshAuthMethods []gossh.AuthMethod +// InitSSHAuthMethods initialises all known SSH auth methods on the client side. +func InitSSHAuthMethods(sshAuthMethods []gossh.AuthMethod, hostKeyCallback gossh.HostKeyCallback, trustAllHosts bool, throttleCh chan struct{}) ([]gossh.AuthMethod, HostKeyCallback) { + if len(sshAuthMethods) > 0 { + simpleCallback, err := NewSimpleCallback() + if err != nil { + logger.FatalExit(err) + } + return sshAuthMethods, simpleCallback + } + + return initKnownHostsAuthMethods(trustAllHosts, throttleCh) +} +func initKnownHostsAuthMethods(trustAllHosts bool, throttleCh chan struct{}) ([]gossh.AuthMethod, HostKeyCallback) { + var sshAuthMethods []gossh.AuthMethod if config.Common.ExperimentalFeaturesEnable { sshAuthMethods = append(sshAuthMethods, gossh.Password("experimental feature test")) logger.Info("Added experimental method to list of auth methods") @@ -36,10 +48,10 @@ func InitSSHAuthMethods(trustAllHosts bool, throttleCh chan struct{}) ([]gossh.A } knownHostsPath := os.Getenv("HOME") + "/.ssh/known_hosts" - hostKeyCallback, err := NewHostKeyCallback(knownHostsPath, trustAllHosts, throttleCh) + knownHostsCallback, err := NewKnownHostsCallback(knownHostsPath, trustAllHosts, throttleCh) if err != nil { logger.FatalExit(knownHostsPath, err) } - return sshAuthMethods, hostKeyCallback + return sshAuthMethods, knownHostsCallback } |
