使用PuTTY登录的会话中传输文件

问题描述 投票:58回答:10

我使用PuTTY登录了远程主机。

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

sftp file-transfer putty scp
10个回答
57
投票

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


1
投票

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

默认的putty安装提供了多种传输文件的方法。很可能putty在您的默认路径上,因此您可以从命令提示符直接调用putty。如果没有,您可能需要更改环境变量。请参阅此处的说明:https://it.cornell.edu/managed-servers/transfer-files-using-putt

脚步

  1. 键入cmd打开命令提示符
  2. 要将文件夹从Windows计算机传输到另一台Windows计算机,请使用(注意-r标志,表示文件将以递归方式传输,无需将其压缩):pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" [email protected]:/"C:/Program Files (x86)/"
  3. 要将文件从Windows计算机传输到另一台Windows计算机,请使用:pscp -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" [email protected]:/"C:/Program Files (x86)/"
  4. 有时,您可能只安装了plinkplink可能用于传输文件,但最好仅限于简单的文本文件。它可能具有二进制文件(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计算机,请使用pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" [email protected]:/home/username

要使所有这些工作,您需要拥有适当的公钥/私钥。要为putty生成,请参阅:https://superuser.com/a/1285789/658319


31
投票

  • 单击开始菜单。
  • 点击运行
  • 在打开的框中,键入cmd,然后单击“确定”
  • 在命令提示符下,输入: c:> pscp source_file_name userid @ server_name:/ path / destination_file_name。
For example:

c:> pscp november2012 [email protected]:/ mydata / november2012。

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

请享用


14
投票

PuTTY通常附带一个名为psftp的客户端,您可以将其用于此目的。我不相信你可以通过标准的PuTTY客户端做到这一点(虽然我可能被证明是错误的)。

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


7
投票

没有办法从PuTTY窗口中打开的SSH会话启动文件传输回本地Windows或从本地Windows传回。

虽然PuTTY支持连接共享。

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

要启用共享,请参阅: Sharing an SSH connection between PuTTY tools


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

Opening Session in PuTTY

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

Opening PuTTY in the Same Directory

(我是WinSCP的作者)


6
投票

您也可以从下载psftp.exe:

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

当你运行它时,你输入:

open "server name"

然后:

put "file name"

(键入help以获取完整的命令列表。)

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


4
投票

如果它只是一个文件,您可以使用以下程序(在putty中):

  1. vi filename.extension(在服务器上的活动文件夹中打开新文件名),
  2. 复制+鼠标右键单击腻子(复制和粘贴),
  3. 编辑并保存。 => vi editor commands

使用下一个命令编辑文件权限:chmod u + x filename.extension


2
投票

如果你必须做私钥验证;在命令提示符(cmd),运行

第一;

set PATH=C:\PuttySetupLocation

第二;

pscp -i C:/MyPrivateKeyFile.ppk C:/MySourceFile.jar [email protected]:/home/ubuntu

此外,如果您需要额外的选项,请查看以下链接。 https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter5.html


2
投票

既然你问过/来自哪里,这里有一个适用于'from'部分的技巧。打开“更改设置...”屏幕,终端,然后在“打印机以将ANSI打印机输出发送到:”选择“通用/仅文本”

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

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"

2
投票

看这里:

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这样的直接传输是不可能的,因为会话期间的所有命令都会发送到服务器。

© www.soinside.com 2019 - 2024. All rights reserved.