我使用PuTTY登录了远程主机。
将文件从本地计算机传输到我在PuTTY上登录的计算机的命令是什么?
这可能不是您要求的直接答案,但是当我需要通过SSH会话传输文件时,我使用WinSCP,这是一个优于SCP或SFTP的文件传输程序。当然这假设你在Windows上。
使用Putty传输文件(pscp / plink.exe)
默认的putty安装提供了多种传输文件的方法。很可能putty
在您的默认路径上,因此您可以从命令提示符直接调用putty
。如果没有,您可能需要更改环境变量。请参阅此处的说明:https://it.cornell.edu/managed-servers/transfer-files-using-putt
脚步
cmd
打开命令提示符-r
标志,表示文件将以递归方式传输,无需将其压缩):pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" [email protected]:/"C:/Program Files (x86)/"
pscp -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" [email protected]:/"C:/Program Files (x86)/"
plink
。 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"
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
c:> pscp november2012 [email protected]:/ mydata / november2012。
请享用
PuTTY通常附带一个名为psftp的客户端,您可以将其用于此目的。我不相信你可以通过标准的PuTTY客户端做到这一点(虽然我可能被证明是错误的)。
PuTTY只允许您操作远程计算机。它不提供两个文件系统之间的直接链接,只不过坐在远程机器上。
没有办法从PuTTY窗口中打开的SSH会话启动文件传输回本地Windows或从本地Windows传回。
虽然PuTTY支持连接共享。
虽然您仍然需要运行兼容的文件传输客户端(pscp
或psftp
),但不需要新的登录,它会自动(如果启用)使用现有的PuTTY会话。
要启用共享,请参阅: Sharing an SSH connection between PuTTY tools。
另一种方法是使用WinSCP,一个GUI SFTP / SCP客户端。在浏览远程站点时,您可以随时使用“在PuTTY中打开”按钮将SSH终端打开到同一站点。
通过附加设置,您甚至可以使PuTTY自动导航到您使用WinSCP浏览的同一目录。
见Opening PuTTY in the Same Directory。
(我是WinSCP的作者)
您也可以从下载psftp.exe:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
当你运行它时,你输入:
open "server name"
然后:
put "file name"
(键入help以获取完整的命令列表。)
您还可以键入get <file name>
以将文件从远程计算机下载到本地计算机。
如果它只是一个文件,您可以使用以下程序(在putty中):
使用下一个命令编辑文件权限:chmod u + x filename.extension
如果你必须做私钥验证;在命令提示符(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
既然你问过/来自哪里,这里有一个适用于'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"
看这里:
它建议使用PuTTY的pscp.exe
,可以在这里找到:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
像FTP这样的直接传输是不可能的,因为会话期间的所有命令都会发送到服务器。