diff --git a/crypto b/crypto index 44c1e2ea..8682cc0c 160000 --- a/crypto +++ b/crypto @@ -1 +1 @@ -Subproject commit 44c1e2eaee8770161331993e3bc151667a503363 +Subproject commit 8682cc0c5ad6edd98b8992b8b1a932738b3d1bb3 diff --git a/e2e/banner_test.go b/e2e/banner_test.go index 63263299..812c184a 100644 --- a/e2e/banner_test.go +++ b/e2e/banner_test.go @@ -114,5 +114,50 @@ func TestBanner(t *testing.T) { waitForStdoutContains(stdout, randtext, func(_ string) { }) + + t.Run("from_upstream", func(t *testing.T) { + piperaddr, piperport := nextAvailablePiperAddress() + + piper, _, _, err := runCmd("/sshpiperd/sshpiperd", + "-p", + piperport, + "/sshpiperd/plugins/fixed", + "--target", + "host-password:2222", + ) + + if err != nil { + t.Errorf("failed to run sshpiperd: %v", err) + } + + defer killCmd(piper) + + waitForEndpointReady(piperaddr) + + c, stdin, stdout, err := runCmd( + "ssh", + "-v", + "-o", + "StrictHostKeyChecking=no", + "-o", + "UserKnownHostsFile=/dev/null", + "-p", + piperport, + "-l", + "user", + "127.0.0.1", + ) + + if err != nil { + t.Errorf("failed to ssh to piper, %v", err) + } + + defer killCmd(c) + + enterPassword(stdin, stdout, "wrongpass") + + waitForStdoutContains(stdout, "sshpiper banner from upstream test", func(_ string) { + }) + }) }) } diff --git a/e2e/docker-compose.yml b/e2e/docker-compose.yml index b8dcf02e..77955b4c 100644 --- a/e2e/docker-compose.yml +++ b/e2e/docker-compose.yml @@ -16,6 +16,8 @@ services: volumes: - shared:/shared - ./sshdconfig/no_penalties.conf:/config/sshd/sshd_config.d/no_penalties.conf:ro + - ./sshdconfig/banner.conf:/config/sshd/sshd_config.d/banner.conf:ro + - ./sshdconfig/banner:/tmp/banner:ro networks: - default - netdistract diff --git a/e2e/sshdconfig/banner b/e2e/sshdconfig/banner new file mode 100644 index 00000000..e0b8fdc5 --- /dev/null +++ b/e2e/sshdconfig/banner @@ -0,0 +1 @@ +sshpiper banner from upstream test \ No newline at end of file diff --git a/e2e/sshdconfig/banner.conf b/e2e/sshdconfig/banner.conf new file mode 100644 index 00000000..4582925c --- /dev/null +++ b/e2e/sshdconfig/banner.conf @@ -0,0 +1 @@ +Banner /tmp/banner \ No newline at end of file diff --git a/libplugin/skel.go b/libplugin/skel.go index a04db0a6..c60533dd 100644 --- a/libplugin/skel.go +++ b/libplugin/skel.go @@ -212,8 +212,6 @@ func (p *SkelPlugin) PublicKeyCallback(conn ConnMetadata, publicKey []byte) (*Up return false, err } - log.Debugf("trusted user ca keys: %v", rest) - var trustedca ssh.PublicKey for len(rest) > 0 { trustedca, _, _, rest, err = ssh.ParseAuthorizedKey(rest)