diff --git a/cloud/shepherd/mini/BUILD.bazel b/cloud/shepherd/mini/BUILD.bazel
index 948eb40..7b1a7ad 100644
--- a/cloud/shepherd/mini/BUILD.bazel
+++ b/cloud/shepherd/mini/BUILD.bazel
@@ -18,7 +18,6 @@
         "//cloud/lib/component",
         "//cloud/shepherd",
         "//cloud/shepherd/manager",
-        "//go/net/ssh",
         "@io_k8s_klog_v2//:klog",
         "@org_golang_x_crypto//ssh",
     ],
diff --git a/cloud/shepherd/mini/main.go b/cloud/shepherd/mini/main.go
index 75a5005..b056d20 100644
--- a/cloud/shepherd/mini/main.go
+++ b/cloud/shepherd/mini/main.go
@@ -144,7 +144,7 @@
 		klog.Exitf("Failed to open BMDB connection: %v", err)
 	}
 
-	sshClient, err := c.SSHConfig.NewClient()
+	err = c.SSHConfig.Configure(&c.InitializerConfig.SSHConfig)
 	if err != nil {
 		klog.Exitf("Failed to create SSH client: %v", err)
 	}
@@ -168,7 +168,7 @@
 		klog.Exitf("%v", err)
 	}
 
-	initializer, err := manager.NewInitializer(mini, sshClient, c.InitializerConfig)
+	initializer, err := manager.NewInitializer(mini, c.InitializerConfig)
 	if err != nil {
 		klog.Exitf("%v", err)
 	}
diff --git a/cloud/shepherd/mini/ssh.go b/cloud/shepherd/mini/ssh.go
index dceafc4..59cefca 100644
--- a/cloud/shepherd/mini/ssh.go
+++ b/cloud/shepherd/mini/ssh.go
@@ -7,11 +7,10 @@
 	"flag"
 	"fmt"
 
-	xssh "golang.org/x/crypto/ssh"
+	"golang.org/x/crypto/ssh"
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/shepherd/manager"
-	"source.monogon.dev/go/net/ssh"
 )
 
 type sshConfig struct {
@@ -40,32 +39,35 @@
 	sc.SSHKey.RegisterFlags()
 }
 
-func (sc *sshConfig) NewClient() (*ssh.DirectClient, error) {
+func (sc *sshConfig) Configure(config *ssh.ClientConfig) error {
 	if err := sc.check(); err != nil {
-		return nil, err
+		return err
 	}
 
-	c := ssh.DirectClient{
-		Username: sc.User,
-	}
+	config.User = sc.User
 
 	switch {
 	case sc.Pass != "":
-		c.AuthMethods = []xssh.AuthMethod{xssh.Password(sc.Pass)}
+		config.Auth = []ssh.AuthMethod{ssh.Password(sc.Pass)}
 	case sc.SSHKey.KeyPersistPath != "":
 		signer, err := sc.SSHKey.Signer()
 		if err != nil {
-			return nil, err
+			return err
 		}
 
 		pubKey, err := sc.SSHKey.PublicKey()
 		if err != nil {
-			return nil, err
+			return err
 		}
 
 		klog.Infof("Using ssh key auth with public key: %s", pubKey)
 
-		c.AuthMethods = []xssh.AuthMethod{xssh.PublicKeys(signer)}
+		config.Auth = []ssh.AuthMethod{ssh.PublicKeys(signer)}
 	}
-	return &c, nil
+
+	// 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.
+	config.HostKeyCallback = ssh.InsecureIgnoreHostKey()
+
+	return nil
 }
