如何解决SSH_FX_PERMISSION_DENIED 使用 ssh 包 Golang 时,但使用 filezilla 进行复制有效
我试图在 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 举报,一经查实,本站将立刻删除。