curl 中 scp 和 sftp 的区别

curl 中 scp 和 sftp 的区别

我在使用 curl 时遇到了一个严重的问题。我想从运行 Windows 10 的远程服务器上的树莓派上复制一个文件。服务器上安装了 RSA 密钥,使用 ssh 一切都无需密码即可运行。

如果我运行以下命令:

curl -k -v -u user.me: --pubkey .ssh/id_rsa.pub -T ./image1.jpg sftp://[email protected]/c:/Users/user.me/Documents/image1.jpg

文件已成功上传。

如果我运行相同的命令,将协议更改为 scp:curl -k -v -u user.me: --pubkey .ssh/id_rsa.pub -T ./image1.jpg scp://[电子邮件保护]/c:/Users/user.me/Documents/image1.jpg

我收到一个错误:

curl:(67)身份验证失败

如果我尝试直接使用 scp,它可以正常工作: scp ./image1.jpg[电子邮件保护]:c:/Users/user.me/Documents/image1.jpg

您能解释一下为什么我在使用 curl 时 scp 和 sftp 的行为不同吗?有什么办法可以让 curl 使用 scp 协议成功上传吗?

相关内容