如何从 Linux 容器内部 scp 到 Windows 10?

如何从 Linux 容器内部 scp 到 Windows 10?

我能够将scpLinux (alpine:3) docker 容器中的目录复制到我的 Windows 10 机器 (VM)。问题是复制成功完成后,它会打印此错误:

sshpass -p $MY_PASSWORD scp -o StrictHostKeyChecking=no -r -q /tmp/work [email protected]:/C:/Users/cdebergh.DOMAIN/source/repos/work
Program 'scp.exe' failed to run: Win32 internal error "Access is denied" 0x5 occurred while reading the console output 
buffer. Contact Microsoft Customer Support Services.At line:1 char:1
+ scp.exe -r -t /C:/Users/cdebergh.DOMAIN/source/repos/work
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
At line:1 char:1
+ scp.exe -r -t /C:/Users/cdebergh.DOMAIN/source/repos/work
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed

然后退出容器,退出代码为 1。我在使用远程ssh命令时遇到了这个问题,并通过用参数强制使用伪 tty 解决了这个问题-tt。但是,据我从文档中了解到,这种情况并不存在scp。我该如何实现这一点,或者至少抑制错误,以便容器成功完成?

笔记:我使用sshpass而不是主机密钥,因为我的密码安全地存储在我的 macOS 钥匙串中。然后sshpass在执行期间,我将它作为环境变量传递给临时容器。执行完成后,容器将与密码一起自毁。我宁愿没有敏感文件需要管理(主机私钥),以便在执行期间将其包含在内并保持临时性。

相关内容