diff --git a/metropolis/cli/metroctl/BUILD.bazel b/metropolis/cli/metroctl/BUILD.bazel
index bd7ab70..8829be4 100644
--- a/metropolis/cli/metroctl/BUILD.bazel
+++ b/metropolis/cli/metroctl/BUILD.bazel
@@ -40,7 +40,6 @@
     deps = [
         "//go/clitable",
         "//go/logging",
-        "//go/net/ssh",
         "//metropolis/cli/flagdefs",
         "//metropolis/cli/metroctl/core",
         "//metropolis/node",
@@ -50,6 +49,7 @@
         "//metropolis/proto/common",
         "//osbase/logtree",
         "//osbase/logtree/proto",
+        "//osbase/net/sshtakeover",
         "//osbase/structfs",
         "//version",
         "@com_github_adrg_xdg//:xdg",
diff --git a/metropolis/cli/metroctl/cmd_install_ssh.go b/metropolis/cli/metroctl/cmd_install_ssh.go
index f0a5379..410a88d 100644
--- a/metropolis/cli/metroctl/cmd_install_ssh.go
+++ b/metropolis/cli/metroctl/cmd_install_ssh.go
@@ -18,12 +18,12 @@
 
 	"github.com/schollz/progressbar/v3"
 	"github.com/spf13/cobra"
-	xssh "golang.org/x/crypto/ssh"
+	"golang.org/x/crypto/ssh"
 	"golang.org/x/crypto/ssh/agent"
 	"golang.org/x/term"
 	"google.golang.org/protobuf/proto"
 
-	"source.monogon.dev/go/net/ssh"
+	"source.monogon.dev/osbase/net/sshtakeover"
 	"source.monogon.dev/osbase/structfs"
 )
 
@@ -47,11 +47,11 @@
 			return fmt.Errorf("flag disk is required")
 		}
 
-		var authMethods []xssh.AuthMethod
+		var authMethods []ssh.AuthMethod
 		if aconn, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")); err == nil {
 			defer aconn.Close()
 			a := agent.NewClient(aconn)
-			authMethods = append(authMethods, xssh.PublicKeysCallback(a.Signers))
+			authMethods = append(authMethods, ssh.PublicKeysCallback(a.Signers))
 		} else {
 			log.Printf("error while establishing ssh agent connection: %v", err)
 			log.Println("ssh agent authentication will not be available.")
@@ -62,7 +62,7 @@
 		stdin := int(syscall.Stdin) // nolint:unconvert
 		if term.IsTerminal(stdin) {
 			authMethods = append(authMethods,
-				xssh.PasswordCallback(func() (string, error) {
+				ssh.PasswordCallback(func() (string, error) {
 					fmt.Printf("%s@%s's password: ", user, address)
 					b, err := term.ReadPassword(stdin)
 					if err != nil {
@@ -71,7 +71,7 @@
 					fmt.Println()
 					return string(b), nil
 				}),
-				xssh.KeyboardInteractive(func(name, instruction string, questions []string, echos []bool) ([]string, error) {
+				ssh.KeyboardInteractive(func(name, instruction string, questions []string, echos []bool) ([]string, error) {
 					answers := make([]string, 0, len(questions))
 					for i, q := range questions {
 						fmt.Print(q)
@@ -95,13 +95,19 @@
 			log.Println("stdin is not interactive. password authentication will not be available.")
 		}
 
-		cl := ssh.DirectClient{
-			Username:    user,
-			AuthMethods: authMethods,
+		conf := &ssh.ClientConfig{
+			User: user,
+			Auth: authMethods,
+			// Ignore the host key, since it's likely the first time anything logs into
+			// this device, and also because there's no way of knowing its fingerprint.
+			HostKeyCallback: ssh.InsecureIgnoreHostKey(),
+			// Timeout sets a bound on the time it takes to set up the connection, but
+			// not on total session time.
+			Timeout: 5 * time.Second,
 		}
 
 		ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
-		conn, err := cl.Dial(ctx, address, 5*time.Second)
+		conn, err := sshtakeover.Dial(ctx, address, conf)
 		if err != nil {
 			return fmt.Errorf("error while establishing ssh connection: %w", err)
 		}
@@ -146,7 +152,7 @@
 			proxyReader := progressbar.NewReader(content, bar)
 			defer proxyReader.Close()
 
-			if err := conn.Upload(ctx, targetPath, &proxyReader); err != nil {
+			if err := conn.UploadExecutable(ctx, targetPath, &proxyReader); err != nil {
 				log.Fatalf("error while uploading %q: %v", targetPath, err)
 			}
 		}
