From 56c3e070f56e551c24f5a59153a418cdea1b5e65 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Thu, 18 Nov 2021 20:04:57 +0100 Subject: [PATCH] fix: log what keys are loaded with the ssh-agent Closes https://git.coopcloud.tech/coop-cloud/organising/issues/249. --- pkg/ssh/ssh.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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) }