Hi Brad: Thanks so much for your suggestion. I run "ssh -v" and get useful information as attachment.So,I modify the code,but occurred the different problem as below. ssh: handshake failed: ssh: unexpected message type 3 (expected one of [6])
// ftp package main import ( "fmt" "github.com/pkg/sftp" "golang.org/x/crypto/ssh" ) func main() { c := &ssh.ClientConfig{ User: "root", Auth: []ssh.AuthMethod{ ssh.Password("12345678"), }, } connection, err := ssh.Dial("tcp", "192.168.44.129:22", c) // replace this if err != nil { fmt.Println(err) return } server, err := sftp.NewClient(connection) if err != nil { fmt.Println(err) return } dir, err := server.ReadDir(".") if err != nil { fmt.Println(err) return } for _, fi := range dir { fmt.Println(fi.Name()) } } 2017-02-07 0:55 GMT+08:00 Brad Fitzpatrick <bradf...@golang.org>: > From looking at: > > ssh: unable to authenticate, attempted methods [none], no supported > methods remain > > It seems like your ssh server requires a different authentication mode and > doesn't support KeyboardInteractive (a password). > > Does the standard ssh client work? What does "ssh -v" say? > > > On Mon, Feb 6, 2017 at 1:25 AM, Robert Hsiung <xiong0...@gmail.com> wrote: > >> Dear all: >> I tried to test sftp function with below coding,but occurred problem as >> below. Please give me suggestions. Thanks so much. >> ssh: handshake failed: ssh: unable to authenticate, attempted methods >> [none], no supported methods remain >> >> >>>> >> package main >> >> import ( >> "fmt" >> "github.com/pkg/sftp" >> "golang.org/x/crypto/ssh" >> ) >> >> func main() { >> >> c := &ssh.ClientConfig{ >> User: "root", // replace this >> Auth: []ssh.AuthMethod{ >> ssh.KeyboardInteractive(func(user, instruction string, questions >> []string, echos []bool) ([]string, error) { >> // Just send the password back for all questions >> answers := make([]string, len(questions)) >> for i, _ := range answers { >> answers[i] = "12345678" // replace this >> } >> >> return answers, nil >> }), >> }, >> } >> >> connection, err := ssh.Dial("tcp", "192.168.0.1:22", c) // replace this >> if err != nil { >> fmt.Println(err) >> return >> } >> >> server, err := sftp.NewClient(connection) >> if err != nil { >> fmt.Println(err) >> return >> } >> >> dir, err := server.ReadDir(".") >> if err != nil { >> fmt.Println(err) >> return >> } >> >> for _, fi := range dir { >> fmt.Println(fi.Name()) >> } >> } >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.