SSH in Go: unable to authenticate, attempted methods [none], no supported methods remain

I tried to connect to one of my virtual machines using SSH and Go. It works perfectly fine via command line if i do it like so:

ssh [email protected]_host

I type in the password and it works all good. I tried to do it in Go, here is my code:

package main

import (
    "golang.org/x/crypto/ssh"
    "fmt"
)

func connectViaSsh(user, host string, password string) (*ssh.Client, *ssh.Session) {
    config := &ssh.ClientConfig{
        User: user,
        Auth: []ssh.AuthMethod{ssh.Password(password)},
        HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    }

    client, err := ssh.Dial("tcp", host, config)
    fmt.Println(err)

    session, err := client.NewSession()
    fmt.Println(err)

    return client, session
}


func main() {
    client, _ := connectViaSsh("root", "host:22", "password")
    client.Close()
}

If i run it it returns an error:

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

Does anyone have any idea what might cause such an error. It works just fine using paramiko in Python, and in shell but fails in Go. Is there something i’m missing?