diff --git a/pkg/ssh/ssh.go b/pkg/ssh/ssh.go index 629c8c51..d72c8d0e 100644 --- a/pkg/ssh/ssh.go +++ b/pkg/ssh/ssh.go @@ -409,12 +409,31 @@ func connect(username, host, port string, authMethod ssh.AuthMethod, timeout tim } func connectWithAgentTimeout(host, username, port string, timeout time.Duration) (*Client, error) { + logrus.Debugf("using ssh-agent to make an SSH connection for %s", host) + sshAgent, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) if err != nil { return nil, err } - authMethod := ssh.PublicKeysCallback(agent.NewClient(sshAgent).Signers) + agentCl := agent.NewClient(sshAgent) + authMethod := ssh.PublicKeysCallback(agentCl.Signers) + + loadedKeys, err := agentCl.List() + if err != nil { + return nil, err + } + + var convertedKeys []string + for _, key := range loadedKeys { + convertedKeys = append(convertedKeys, key.String()) + } + + if len(convertedKeys) > 0 { + logrus.Debugf("ssh-agent has these keys loaded: %s", strings.Join(convertedKeys, ",")) + } else { + logrus.Debug("ssh-agent has no keys loaded") + } return connect(username, host, port, authMethod, timeout) }