1 recently in writing SFTP upload file, read a pile of code on the Internet, a lot of experiments, always unsuccessful, here to inquire
func Sftp_connect(user, pbi, local string) {
fmt.Println(user, pbi, local)
pub := PublicKeyFile(pbi)
sshConfig := &ssh.ClientConfig{
User: user,
Auth: []ssh.AuthMethod{
pub,
},
HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
return nil
},
}
conn, err := ssh.Dial("tcp", local, sshConfig)
if err != nil {
fmt.Println("sulwan")
fmt.Println(err)
} else {
fmt.Println(conn)
defer conn.Close()
}
}
error:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x63240d]
goroutine 1 [running]:
golang.org/x/crypto/ssh. (* connection) .clientauthenticate (0xc42011c200,0xc42010e340,0x0, 0xa)
/data/golang/src/golang.org/x/crypto/ssh/client_auth.go:63 +0x2dd
golang.org/x/crypto/ssh. (* connection) .clientHandler (0xc42011c200,0x6f8316,0x12,0xc42010e340,0x0, 0x0)
/data/golang/src/golang.org/x/crypto/ssh/client.go:113 +0x2c4
golang.org/x/crypto/ssh.NewClientConn (0x730780,0xc42000e530,0x6f8316,0x12,0xc420055e70, 0x730780,0xc42000e530, 0x0,0x0,0x1,.)
/data/golang/src/golang.org/x/crypto/ssh/client.go:83 +0x100
golang.org/x/crypto/ssh.Dial (0x6f4442,0x3,0x6f8316,0x12,0xc420055e70, 0x0,0xc420016798, 0xc420055ec2)
/data/golang/src/golang.org/x/crypto/ssh/client.go:177 +0xb3
github.com/sulwan/until.Sftp_connect (0x6f611b, 0xc, 0x6f5b84, 0xa, 0x6f8316, 0x12)
/data/golang/src/budhad/until/sftp.go:32 +0x28f
main.main ()
/data/go/sina/main.go:38 +0x60
for answers to the above questions, it is best to find a complete example of SFTP pubkey authentication upload