golang通過ssh實現遠程文件傳輸


使用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, 操作和官方庫差不多
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM