我可以使用SSH传输文件吗?


32

我正在Windows 7上使用PuTTY将SSH连接到我的学校计算机实验室。我可以使用SSH将文件从Windows计算机传输到学校计算机上的用户吗?


我投票结束这个问题是离题的,因为它是关于Windows而不是Unix的。
dr01

@ dr01是的,但是它有很多支持,所以值得后代继续前进。
roaima '18

Answers:


41

使用腻子下载页面中的PSCP工具:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PSCP是scp的腻子版本,它是ssh命令上的cp(复制)。

需要在Windows计算机上安装PSCP(只需下载,实际上是没有安装过程的。在“打包文件”部分中,已经包含pscp.exe)。学校的服务器上无需安装任何软件。PSCP和scp都使用ssh进行连接。

要从评论中回答使用问题:

要从您的计算机上载到远程服务器:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

这会将文件file.txt上传到服务器上的指定目录。如果目标路径的最后部分不是目录,则它将是新文件名。您还可以执行此操作以上传其他名称的文件:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

要将文件从远程服务器下载到您的计算机,请执行以下操作:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

要么

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

要么

c:\pscp user@remote:\home\user\some\file.txt .

末尾有一个孤点。这会将指定的文件下载到当前目录。

由于评论太过分了,因此在这里我还应该指出WinSCP可以为所有这些提供GUI,如果感兴趣的话:http : //winscp.net/eng/download.php


我当然不能在大学计算机上安装任何东西。我需要吗?
Alex Mohr 2013年

Windows 7机器是您的还是您的学校?我读了一个问题,建议您使用计算机上腻子连接到学校。如果真是这样,那么您无需在学校的计算机上安装任何东西,但您需要在计算机上进行安装。
SuperMagic 2013年

我正在使用Windows 7计算机。谢谢!我找到了wget命令,并使用了保管箱传输文件,但是请务必牢记这一点
Alex Mohr 2013年

还有一件事:scp双向工作。您可以上传和下载。
SuperMagic 2013年

我在使用命令语法时遇到了麻烦。是pscp source "path_to_local_file" user@host:path_to_new_location吗?我可以将远程计算机上的路径保留为空白,将其放在我的根目录中。
Alex Mohr 2013年

6

您可能必须使用正斜杠(/)与LINUX / UNIX服务器进行通讯

c:\pscp c:\some\path\to\a\file.txt user@remote:/home/user/some/path

3

您可以使用tar以下命令收集大量文件:

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

...将以递归方式将本地计算机上当前目录中的所有文件压缩并流式传输到目标路径,同时在远程计算机上解压缩和扩展流。

您可以对写入stdout的任何内容执行类似的操作。cat是一个显而易见的选择:

cat ./localfile | ssh user@remote 'cat >./remotefile'

1
大。如何在Windows中进行操作
Joe Joe

@Joe-同样吗?也许<./localfile putty user@remote 'cat >./remotefile'-我忘记了所有的油灰开关。但这非常接近
mikeserv

1
Windows / PuTTY版本为:输入localfile | plink user @ remote“ cat> remotefile”
Adam Haun

2

您可以为此使用WinSCP。它比列出的其他工具容易得多,它提供了一个简单的拖放UI。


不清楚这与所问的问题有什么关系。除非只是客户端程序的名称,否则其余都是垃圾。
汤姆·亨特

也许这个问题随着时间的推移而改变了,但这就是我一直在寻找的答案:这是一个带有gui的程序,可以通过ssh浏览和传输文件。它甚至从Putty导入设置。非常方便的恕我直言,只是不记得它的名字,thx
Emile Vrijdags 18-2-28

2

您可以使用Windows PowerShell命令:

scp -P <non-default target ssh port> "<source file>" <username>@<hostname/address>:<destination path>

-P 如果在默认端口(22)上打开ssh,则可以省略该标志

例如:

  • 通过ssh从Windows主机复制文件“ ps.key”
  • 目标地址是192.168.88.242,ssh在端口1688上工作
  • 目标用户名是“ nick”

命令:

scp -P 1688 "D:\MEGA\ps.key" nick@192.168.88.242:/home/nick/ps.key

之后,您应该确认目标密钥指纹(如果您之前尚未通过PowerShell连接到此主机),然后键入目标用户的密码。

在win10上测试,不需要任何其他安装


看起来不像Powershell命令。您确定不是scp来自PuTTY套件吗?
roaima

自Fall Creator更新(2017年末)以来,@ roaima OpenSSH已作为Windows 10的可选但内置部分提供,并且自2018年4月更新以来已默认安装。该scp命令包括在内。
Bob Sammers

1
@BobSammers哦,是这样。(我的被Cygwin安装掩盖了。)但是,从任何统一的角度来看,它都不是Powershell。命令行当然可以,但是Powershell却不能。
roaima

实际上,这是最简单的解决方案,我刚刚在Windows上使用PShell进行了尝试,它在RHEL上打开了SSH,要求输入密码,然后复制文件并关闭。而且有效!
拉斐尔

0

如果您不是命令行专家,请使用“超越比较”工具。Beyond Compare是一个文件夹比较工具,具有一个不错的用户界面,可让您在尝试登录的不同环境中使用SFTP和SSH私钥文件。这是该工具的链接[ https://www.scootersoftware.com/][1]


0

由于您已经熟悉腻子。我建议您看看https://mobaxterm.mobatek.net/。MobaXterm提供了从Windows计算机在Linux上进行远程工作所需的一切,包括ssh,sftp,scp,Xwindows。我认为这比腻子好得多。


非个人使用是否也免费(免费);例如通过SSH到学校的计算机实验室(如问题所示)?
Pierre.Vriens

是。MobaXterm是免费的,甚至用于商业用途,除非您需要保存10多个会话。我是软件开发人员,免费版本非常适合我的工作。对于学校作业,请继续。
Cen R.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.