问题描述
我试图在 SSH 包和 Golang 的帮助下将文件从本地复制到服务器。当我尝试复制时,出现 sftp: "Permission denied" (SSH_FX_PERMISSION_DENIED) 错误。
这是示例代码
clientConfig := &ssh.ClientConfig{
User: "username",Auth: []ssh.AuthMethod{
ssh.Password("password")
},}
// connet to ssh
addr = fmt.Sprintf("%s:%d",host,port)
if sshClient,err = ssh.Dial("tcp",addr,clientConfig); err != nil
{
return nil,err
}
// create sftp client
if sftpClient,err = sftp.NewClient(sshClient); err != nil {
return nil,err
}
// create destination file
dstFile,err := sftpClient.Create("/folderpath/filename")
if err != nil {
return fmt.Errorf("error creating destination %v ",err)
}
defer dstFile.Close()
srcFile,err := os.Open("localFilePath")
// defer io.copy(dstFile,srcFile)
bytes_copied,err := io.copy(dstFile,srcFile)
if err != nil {
return err
}
但是我可以使用相同的凭据通过 Filezilla 复制文件。我对文件夹有 drwx--- 权限,对文件有 -rw--- 权限。
让我知道会出现什么问题,我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)