Я пытаюсь подключиться к удаленному серверу с помощью Go. Вот что я использую: ( SSH Handshake жалуется на отсутствие ключа хоста )
key, err := ioutil.ReadFile("/Users/pankaj/.ssh/id_rsa")
if err != nil {
log.Fatalf("unable to read private key: %v", err)
}
// Create the Signer for this private key.
signer, err := ssh.ParsePrivateKey(key)
if err != nil {
log.Fatalf("unable to parse private key: %v", err)
}
hostKeyCallback, err := knownhosts.New("/Users/pankaj/.ssh/known_hosts")
if err != nil {
log.Fatal(err)
}
sshConfig := &ssh.ClientConfig{
User: "pankaj",
Auth: []ssh.AuthMethod{
ssh.PublicKeys(signer),
},
HostKeyCallback: hostKeyCallback,
}
conn, err := ssh.Dial("tcp", "dev.letsreap.com:22", sshConfig)
if err != nil {
log.Fatalf("unable to connect: %v", err)
}
Однако на ssh.Dial я получаю:
ssh: handshake failed: knownhosts: key mismatch
Я подтвердил, что могу подключиться к удаленному серверу из командной строки. Также я могу успешно подключиться, если я использую ssh.InsecureIgnoreHostKey (). Чего мне не хватает?