传输文件到/从会话我用 PuTTY 登录

我用 PuTTY 登录了一个远程主机。

在 PuTTY 上将文件从本地机器传输到登录的机器的命令是什么?

356103 次浏览

看这里:

Http://web.archive.org/web/20170106202838/https://it.cornell.edu/services/managed_servers/howto/file_transfer/fileputty.cfm#puttytrans

它推荐使用 PuTTY 中的 pscp.exe,可以在这里找到: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

像 FTP 这样的直接传输是不可能的,因为会话期间的所有命令都会发送到服务器。

这可能不是您要求的直接答案,但是当我需要通过 SSH 会话传输文件时,我使用 WinSCP,它是通过 SCP 或 SFTP 传输文件的优秀程序。当然,这是假设您使用的是 Windows 系统。

PuTTY 通常附带一个名为 psftp 的客户端,您可以利用它来实现此目的。我不相信你可以通过标准的 PuTTY 客户端做到这一点(尽管我可能被证明是错误的)。

PuTTY 只允许您操作远程计算机。它不提供两个文件系统之间的直接链接,就像坐在远程计算机上一样。

  • 点击开始菜单。
  • Click run
  • 在打开的框中,键入 cmd,然后单击 ok
  • 在命令提示符下,输入:

    C: > pscp source _ file _ name userid@server _ name:/path/Destination _ file _ name.

For example:

C: > pscp november2012 wrhse@ware.cit.Cornell.edu:/mydata/november2012.

  • 出现提示时,请输入服务器密码。

好好享受吧

You can also download psftp.exe from:

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

当你运行它的时候,你输入:

open "server name"

然后:

put "file name"

(Type help to get a full list of commands.)

还可以键入 get <file name>将文件从远程计算机下载到本地计算机。

如果只有一个文件,您可以使用以下程序(在腻子) :

  1. 上的活动文件夹中打开新文件名 服务器)、,
  2. 复制 + 鼠标右键点击,而在腻子(复制和粘贴) ,
  3. edit and save. =>Vi 编辑器命令

使用下一个命令编辑文件权限: Chmod u + x 扩展名

无法从 PuTTY 窗口中打开的 SSH 会话启动从本地 Windows 返回/从本地 Windows 的文件传输。

尽管 PuTTY 支持连接共享。

虽然您仍然需要运行兼容的文件传输客户端(pscppsftp) ,但是不需要新的登录名,它会自动(如果启用)利用现有的 PuTTY 会话。

要启用共享,请参阅:
在 PuTTY 工具 之间共享 SSH 连接。


另一种方法是使用 WinSCP,一个 GUI SFTP/SCP 客户端。在浏览远程站点时,可以随时使用 用 PuTTY 打开按钮打开 SSH 终端到同一站点。

参见 PuTTY 开幕式

通过额外的设置,您甚至可以让 PuTTY 自动导航到使用 WinSCP 浏览的同一目录。

参见 在同一目录中打开 PuTTY

(我是 WinSCP 的作者)

如果必须进行私钥验证,请在命令提示符(Cmd)处运行

首先;

set PATH=C:\PuttySetupLocation

第二;

pscp -i C:/MyPrivateKeyFile.ppk C:/MySourceFile.jar ubuntu@55.69.41.155:/home/ubuntu

另外,如果您需要额外的选项,请查看以下链接

使用 Putty (pscp/plink.exe)传输文件

默认的腻子安装提供了多种传输文件的方式。 Most likely putty is on your default path, so you can directly call 命令提示符中的 putty。如果没有,您可能需要更改 环境变量。请参阅这里的说明: Https://it.cornell.edu/managed-servers/transfer-files-using-putt

步骤

  1. 键入 cmd打开命令提示符

  2. To transfer folders from your 视窗电脑 to another Windows computer Use (请注意 -r标志,它指示文件将为 递归传输,不需要拉上拉链) : pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"

  3. 将文件从 视窗电脑传输到另一台 < em > Windows 计算机 use: pscp -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"

  4. 有时,您可能只安装了 plink 用于传输文件,但最好仅限于简单的文本文件 二进制文件(https://superuser.com/questions/1289455/create-text-file-on-remote-machine-using-plink-putty-with-contents-of-windows-lo)可能具有未知行为: plink -i C:/Users/username/.ssh/id_rsa.ppk user@host <localfile "cat >hostfile"

  5. 将文件从 Linux 服务器传输到 Windows 计算机再传输到 Linux computer use pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" username@10.15.48.16:/home/username

为了使所有这些都能正常工作,您需要有适当的公钥/私钥 为腻子生成这个 https://superuser.com/a/1285789/658319参见:

Since you asked about to/from, here's a trick that works for the 'from' part. Open the 'Change settings...' screen, Terminal, and under 'Printer to send ANSI printer output to:' select 'Generic / Text Only'

现在在远程系统上,在一行上运行这个:

tput mc5; cat whatever.txt; tput mc4

Putty 会告诉你文件已经保存了。这样做的目的是将终端设置为打印机模式(tput mc5) ,将文件打印到屏幕(cat) ,然后关闭打印机模式(tput mc4)。如果你不把所有的命令放在一行上,屏幕就会显示为冻结状态,因为 Putty 正在将所有的终端输出保存到后台的一个文件中。

如果您在一个没有 tput 命令的有限系统上(例如 qnap) ,可以尝试用 printf“ x1b [5i”代替 tput mc5,用 printf“ x1b [4i”代替 tput mc4。

中间的命令就是打印到屏幕上的任何东西。因此,使用 tail-n 10000 blah.log 下载日志文件的最后10k 行,或者使用 base64编码器将二进制文件映射到您可以打印的内容(然后在本地系统上解码) :

printf "\x1b[5i"; openssl enc -base64 -in something.zip; printf "\x1b[4i"

通过这种方式,在 windows pscp 上允许直接上传(不需要任何请求,例如接受密钥) :

pscp.exe -scp -pw 'my_pw' -v -i my.ppk -l root -batch -sshlog logfile19.txt -hostkey ba:2e:4d:12:68:82:19:a1:d2:22:bc:12:c2:1a:44:a7 hallo4.txt root@10.10.10.10:/srv/www/htdocs/xml_parser/hallo4.txt

每天都有同样的问题。

我刚刚创建了 一个简单的风险投资项目来解决这个问题。

它将文件作为 Base64编码的数据直接复制到剪贴板,然后可以将其粘贴到 PuTTY 控制台并在远程端进行解码。

This solution is for relatively small files (relative to the connection speed to your remote console).

安装:

下载 clip_b64.exe并将其放在 SendTo 文件夹中(或其 .lnk快捷方式)。若要打开此文件夹,请在资源管理器的地址栏中输入 shell:sendto%appdata%\Microsoft\Windows\SendTo

您可能需要安装 VC 2017 redist来运行它,或者使用静态链接的 clip_b64s.exe执行。

用法:

在本地机器上:

在“文件资源管理器”中,右键单击要传输的文件以打开上下文菜单,然后转到“发送到”部分并从列表中选择 Clip_B64

在远程控制台上(通过 putty-ssh 链接) :

运行 shell 命令 base64 -d > file-name-you-want并在控制台中右键单击(或按 Shift + Insert)将剪贴板内容放入其中,然后按 Ctrl + D完成。

既然你问过要/从,这里有一个对“ to”部分有效的技巧。

在本地电脑上:

  • 在 Notepad + + 中打开本地文件(我假设它是一个二进制文件,否则这会更简单!)
  • Ctrl-A 选择所有。
  • 插件-> MIME 工具-> Base64编码与填充。
  • “记事本 + +”现在显示只用“普通”字母和数字编码的文件副本。
  • Ctrl-A Ctrl-C 收到。

在 SSH 会议上:

  • nano myfile.b64
  • 右击可粘贴编码文本。
  • Ctrl-O, Ctrl-X to save and exit.
  • 现在,我们在远程计算机上有了您的文件的 base64编码副本。

从命令行:

  • base64 -d myfile.b64 > myfile.zip
  • unzip myfile.zip(或者您需要对此文件执行的任何操作)

文件现在已经传输。根据需要检查文件大小、校验和工具等,以使自己确信文件是一个准确的副本,然后删除临时 b64