golang通过ssh实现远程文件传输

不问归期 提交于 2020-02-24 23:13:46

使用ssh远程操作文件, 主要是创建ssh, 直接上代码

import (   "fmt"   "github.com/pkg/sftp"   "golang.org/x/crypto/ssh"   "net"   "strconv"   "time")func SftpConnect(user, password, host string, port int) (sftpClient *sftp.Client, err error) { //参数: 远程服务器用户名, 密码, ip, 端口   auth := make([]ssh.AuthMethod, 0)   auth = append(auth, ssh.Password(password))   clientConfig := &ssh.ClientConfig{      User:    user,      Auth:    auth,      Timeout: 30 * time.Second,      HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {         return nil      },   }   addr := host + ":" + strconv.Itoa(port)   sshClient, err := ssh.Dial("tcp", addr, clientConfig) //连接ssh   if err != nil {      fmt.Println("连接ssh失败", err)      return   }   if sftpClient, err = sftp.NewClient(sshClient); err != nil { //创建客户端      fmt.Println("创建客户端失败", err)      return   }   return}使用也很简单

sftpClient.Open() 返回的是*sftp.File, 操作和官方库差不多

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!