PuTTY Secure Copy client
Release 0.62
Usage: pscp [options] [user@]host:source target
pscp [options] source [source...] [user@]host:target
pscp [options] -ls [user@]host:filespec
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-p preserve file attributes
-q quiet, don't show statistics
-r copy directories recursively
-v show verbose messages
-load sessname Load settings from saved session
-P port connect to specified port
-l user connect with specified username
-pw passw login with specified password
-1 -2 force use of particular SSH protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-noagent disable use of Pageant
-agent enable use of Pageant
-batch disable all interactive prompts
-unsafe allow server-side wildcards (DANGEROUS)
-sftp force use of SFTP protocol
-scp force use of SCP protocol
现在,Windows已经将OpenSSH(包括SCP)作为可选组件,所以你可以直接使用它。它最早出现在2018年秋季的Windows 10版本中。它与你在大多数Linux发行版中看到的命令几乎相同,因为它来自相同的代码库。微软只是做了一两个小调整,使其在Windows上工作。 安装非常简单,只需进入开始-〉设置-〉应用程序-〉可选功能-〉查看功能在搜索框中输入OpenSSH并选中OpenSSH客户端,然后单击下一步。有关如何设置它的详细说明,请参阅OpenSSH in Windows。要获得更多PowerShell安装方式,请从提升的PowerShell提示符下运行以下命令:
Get-WindowsCapability -Online | Where Name -Like '*ssh*'
安装后,您可以从PowerShell调用scp,就像调用任何其他可执行命令一样。
scp file.dat user.name@example.com:/target/path
如果您确实不想使用SCP,请使用Copy-Item
这需要在您的服务器上安装PowerShell。是的,您可以在Linux上安装PowerShell。只需使用-ToSession参数调用Copy-Item传递SSH连接会话,但我从未真正尝试过。它需要最新版本的PowerShell和一些设置请参见PowerShell remoting over SSH。类似于以下内容:
5条答案
按热度按时间jjhzyzn01#
Putty附带了一个方便的小工具,叫做
pscp.exe
,它可以做到这一点,并且可以很容易地在powershell中调用。下面的示例从Windows复制到CentOS框(以用户代码“bill”登录),并使用
pscp
中的-pw
开关传入密码(否则,生成的命令窗口将提示输入Linux密码):qeeaahzv2#
pscp.exe
是一个可行的选择,但我已经使用Rebex的库几年了,现在在C#应用程序和PowerShell脚本中进行SFTP和FTPS传输,并取得了巨大的成功。他们的包也包括an SCP object,但我个人还没有使用过它。它确实需要花钱,而X1 M1 N1 X是免费的。在选择Rebex软件包之前,我曾考虑过走PuTTY路线,但我的团队决定,从长远来看,拥有一个我们可以轻松融入任何应用程序/脚本的库是值得的。
7d7tgy0s3#
您可以使用PowerShell中的WinSCP .NET assembly进行SCP传输。
例如,请参阅http://winscp.net/eng/docs/library_powershell#example
本例使用SFTP协议,要使用SCP,只需修改为:
虽然如果你的服务器支持SCP协议,它可能也支持SFTP。SFTP是更好的选择,如果你有选择。
pwuypxnk4#
既然可以使用SCP,为什么还要使用SCP的替代方案?
现在,Windows已经将OpenSSH(包括SCP)作为可选组件,所以你可以直接使用它。它最早出现在2018年秋季的Windows 10版本中。它与你在大多数Linux发行版中看到的命令几乎相同,因为它来自相同的代码库。微软只是做了一两个小调整,使其在Windows上工作。
安装非常简单,只需进入开始-〉设置-〉应用程序-〉可选功能-〉查看功能在搜索框中输入OpenSSH并选中OpenSSH客户端,然后单击下一步。有关如何设置它的详细说明,请参阅OpenSSH in Windows。要获得更多PowerShell安装方式,请从提升的PowerShell提示符下运行以下命令:
您可以使用此命令检查是否有更新的版本,以及您是否已经安装了该版本:
安装后,您可以从PowerShell调用
scp
,就像调用任何其他可执行命令一样。如果您确实不想使用SCP,请使用Copy-Item
这需要在您的服务器上安装PowerShell。是的,您可以在Linux上安装PowerShell。只需使用
-ToSession
参数调用Copy-Item传递SSH连接会话,但我从未真正尝试过。它需要最新版本的PowerShell和一些设置请参见PowerShell remoting over SSH。类似于以下内容:如果两台计算机都是Windows计算机,则可以使用相同得
-ToSession
参数通过WinRM复制文件.但两台计算机都必须加入域,否则可能会出现安全问题.5t7ly7z55#
还有一种“.NET友好”方式:
您可以使用SharpSSHdll来执行ssh命令,并执行scp/sftp传输。
例如:
还有SSH.Net库,它做的事情大致相同。