package main
import (
"io/ioutil"
"log"
"golang.org/x/crypto/ssh"
)
func main() {
ip := "xx.xx.xx.xx"
port := "22"
user := "username"
buf, err := ioutil.ReadFile("/path/to/keyfile")
if err != nil {
panic(err)
}
key, err := ssh.ParsePrivateKey(buf)
if err != nil {
panic(err)
}
config := &ssh.ClientConfig{
User: user,
Auth: []ssh.AuthMethod{
ssh.PublicKeys(key),
},
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
}
conn, err := ssh.Dial("tcp", ip+":"+port, config)
if err != nil {
log.Println(err)
}
defer conn.Close()
sessions, err := conn.NewSession()
if err != nil {
log.Println(err)
}
defer sessions.Close()
sessions.Run("echo -n > empty.txt")
}