如何使用powershell将文件从本地机器传输到sftp服务器?

问题描述

我想在 powershell 中使用 sftp 将文件从本地计算机传输到远程服务器。

我使用了多种方法,例如 Open-SFTPServer、copy-File、SFTPFileUploads、Session.put 等,但没有任何效果

有人可以帮我解决这个问题吗?

我尝试的示例之一如下:

$sftp = Open-SFTPServer -serverAddress $sftpHost -userName $userName -userPassword $userPassword

解决方法

Windows 10 内置了 OpenSSH,但已禁用。其中包含 sftpsshscp 等工具:

# You may or may not need to restart after enabling the client
Add-WindowsCapability -Online -Name OpenSSH.Client

一旦启用,只需像往常一样连接

# this example is interactive,and starting from powershell
PS C:\> sftp MyUser@MyServer
sftp> put test.txt
Uploading test.txt to /home/MyUser/test.txt
test.txt                                                                             100%  380    11.9KB/s   00:00
sftp> ls
test.txt
sftp> rm test.csv
Removing /home/MyUser/test.txt
sftp> quit
PS C:\> # now back in powershell