From 419d0d7295fa411851e9fdb9e86d859f0f7d7a0a Mon Sep 17 00:00:00 2001 From: William Banfield Date: Wed, 30 Nov 2022 12:41:38 -0500 Subject: [PATCH] add ssh pkg --- test/e2e/pkg/ssh/ssh.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/e2e/pkg/ssh/ssh.go diff --git a/test/e2e/pkg/ssh/ssh.go b/test/e2e/pkg/ssh/ssh.go new file mode 100644 index 000000000..bd2619d35 --- /dev/null +++ b/test/e2e/pkg/ssh/ssh.go @@ -0,0 +1,33 @@ +package ssh + +import ( + "os" + "path/filepath" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/knownhosts" +) + +func Exec(cfg *ssh.ClientConfig, addr, cmd string) error { + c, err := ssh.Dial("tcp", addr, cfg) + if err != nil { + return err + } + s, err := c.NewSession() + defer s.Close() + err = s.Run(cmd) + if err != nil { + return err + } + return nil +} + +func NewClientConfig(key string) (*ssh.ClientConfig, error) { + hkc, err := knownhosts.New(filepath.Join(os.Getenv("HOME"), ".ssh", "known_hosts")) + if err != nil { + return nil, err + } + return &ssh.ClientConfig{ + HostKeyCallback: hkc, + }, nil +}