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

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

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

答案1

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

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

PSCP 是 scp 的 putty 版本,它是通过 ssh 命令进行 cp(复制)。

PSCP 需要安装在您的 Windows 计算机上(刚刚下载,实际上,没有安装过程。在“打包文件”部分中,已经包含了 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

答案2

你可以使用Windows PowerShell(实际上,它是OpenSSH命令,它也可以在任何UNIX操作系统上使用):

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

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

切换本地和远程路径的位置以从远程主机复制文件

例如:

  • 通过 ssh 复制文件“ps.key”
  • 本地操作系统是Windows 10
  • 远程地址是192.168.88.242,ssh(守护进程)在端口1688上工作
  • 远程用户名是“nick”

命令:

本地(win)->远程(unix):

scp -P 1688 "D:\MEGA\ps.key" [email protected]:/home/nick/ps.key

远程->本地(从远程主机复制):

scp -P 1688 [email protected]:/home/nick/ps.key "D:\MEGA\ps.key"

之后,您应该确认目标密钥指纹(如果您之前没有通过 PowerShell 连接到该主机)并在远程主机上对自己进行身份验证(如果不使用 ssh-agent,则输入用户密码或 ssh-key 密码)。

应该可以在 win10 上运行,无需任何安装,因为 OpenSSH 是内置的

答案3

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

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

答案4

您可以使用以下命令将大量文件集中起来tar

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

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

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

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

相关内容