如果你是个PuTTY重度用户,在使用ssh连上一个远端机器工作了好一阵子后,发现自己需要对 当前会话 上传/下载文件,要怎样才能简单快捷呢?

最简单的方式

最简单的方法: 安装WinSCP或者Filezilla, 启动该程序,然后自己输入输入主机名、端口、用户名、密码登录,然后在putty里面用pwd命令看看当前目录,再在WinSCP/Filezilla中跳转到那个目录去,再传送文件.

WinSCP界面(commander风格.另外还支持explorer风格):

优点:上手容易,没有额外的学习负担

缺点

  • 繁琐(为什么还要我再输入一遍主机名、端口名、登录用户名这些?为什么不能复用当前的ssh连接呢?);
  • 而且有多个PuTTY连接时,这边要上传,那边要下载,还得搞明白PuTTY会话与WinSCP/Filezilla窗口的对应关系,否则一不小心就弄混了。

方法一: 用KiTTY + WinSCP/kscp

我们可以用KiTTY(已被蔷,不过可以从这里下载:http://www.filehorse.com/download-kitty/, 如果需要带有kageant/kscp的版本,可从https://chocolatey.org/packages/kitty下载 )来替代PuTTY,因为它支持 一键接通winscp和pscp(不再需要你输入机器名、用户名、密码)。当然,你首先得装这两个东西(可下载便携版本放到PATH内)

在KiTTY中,这两个操作均是在窗口菜单上发起(点击kitty窗口左上角图标或者在标题栏点右键) (此图裁剪自: Putty You Go Away - Kitty Takes its Place - KossBoss

如果你只是需要上传一个文件,可以在kitty的窗口菜单上发起Send with pscp命令,

如果你需要下载文件,或者需要传送多个文件甚至整个目录,那么可以在kitty的窗口菜单上发起Start WinSCP,kitty与WinSCP结合的优点是你不用再输入任何信息。

优点: 从KiTTY打开WinSCP时,你不用再输入主机名/端口/用户名/密码。

缺点

  • 如果你一直用得是PuTTY,那么得迁移到KiTTY,这里有迁移成本:KiTTY虽然兼容PuTTY的功能,但session保存在注册表的不同位置(第一次启动KiTTY时它会导入PuTTY的sessions,但后来再用PuTTY增加删除修改的session并不自动刷新到KiTTY里面去)。所以想使用这个kitty的这个功能意味着你要承担迁移成本(putty的生态要好一些,有不少第三方工具,但这些第三方工具能否工作于KiTTY就不一定了)
  • 另外打开WinSCP后仍然需要手工转到kitty里面的当前工作目录,这一点上不如下面的zmodem方便

参考: pscp and WinSCP integration - KiTTY 注意:被蔷

方法二:用SuperPuTTY的sftp界面

SuperPuTTY是一个PuTTY的多标签页管理程序,但它同时还提供了文件传输界面.

[] 图

优点

  • 可以不必迁移到kitty(不过,SuperPuTTY也支持kitty)
  • 功能直接提供在SuperPuTTY内,没有安装、配置其它应用程序的烦恼,比较省事
  • 可以享受SuperPuTTY的其它邮电(比如标签页管理,多会话平铺,自行定义会话,会话查找,脚本化等等)

缺点:

  • 只能从session树上发起sftp操作,如果session比较多,要针对 当前session 传送文件,得在树上找一阵子
  • 得重新输入密码(不过SuperPuTTY允许你附加命令行参数给PuTTY/KiTTY,比如-pass "foobar"
  • SuperPuTTY不支持自动导入PuTTY/KiTTY的session,而且导入时要先将原来导入的删除(否则会造成重复)-原来我觉得这是它的设计缺陷,但后来放弃了PuTTY/KiTTY的session(只将它们用作模板,这个以后再说).

方法三:用zmodem来上传下载文件

准备工作:

使用方法: 使用的时候就简单了,

  • 要下载文件的时候在Linux服务器上发起sz somefile.zip命令就行了(跟其它支持zmodem的客户端不一样的是,PuTTY-nd不会询问保存文件的位置,会直接保存到桌面上);
  • 要上传的时候,在Linux服务器上敲rz命令,PuTTY-nd/KiTTY就会显示打开文件对话框,让你选择要上传的文件。

优点:

  • 使用起来很方便,不用打开其它程序重新建立ssh连接,也不用一层一层跳转目录;
  • 举一反三,掌握了这个,可在其它支持zmodem的终端上使用,比如Xshell, Mobaxterm, GNu Screen

缺点:

  • 要在服务器上安装lrzsz包,如果要管理很多台服务器,正式环境也可能不能随意联网(这样第一次如何安装lrzsz也挺费劲),可能会比较麻烦。
  • 一次只能传送单个文件,要传输一个目录的话就得用tar或者zip打包;
  • 另外,PuTTY-nd的实现不太稳定(有时不工作?)

KiTTY 也支持zmodem,不过启用这个功能有点麻烦

  1. %appdata%\KiTTY\kitty.ini里面设置[KiTTY]zmodem=yes
  2. 下载Windows版本的rz.exe和sz.exe(可从http://www.9bis.net/kitty/?file=kitty_zmodem.zip (被土薔)下载或者从LePuTTY的二进制包 里面提取win32-lrzsz-0.12.20-bin.zip
  3. 打开KiTTY,在 Connection/Zmodem 里设置sz.exerz.exe的路径,以及下载文件的保存地址

使用的时候也有点麻烦

  1. 每个session都要设置(除非你先在 Default Settings 里面设置了,然后新建session时会继承)
  2. 下载时在linux上输入sz some_file 后,要在KiTTY窗口菜单上选择 Zmodem Receive.文件被存到上面设置的目录(不会让你选目录)
  3. 上传时要先在linux上输入rz,然后再在KiTTY窗口菜单上选择 Zmodem Upload

参考:

参考:

方法四:用PuTTY Session Manager + WinSCP/Filezilla

如果你觉得zmodem不太方便/稳定,又不想从PuTTY迁移到KiTTY,那还有没有其它办法?好吧,这里还有一个:在PuTTY Session Manager 上发起WinSCP或者Filezilla调用。

PuTTY Session Manager这个小工具的主要是能够列出所有的putty session(并且你可以将它们组织成树状),你只要双击节点即可调用putty打开相应的会话(它的一个优点是它支持将session按目录组织起来)。

PuTTY Session Manager支持对接WinSCP和Filezilla,可以在右键菜单中对选中session发起WinSCP或者Filezilla会话,不再需要输入主机名/端口/用户名:

优点:不用自己建立WinSCP的session,同时还可以少输入服务器地址、用户名。

缺点

  • 还得自己输入密码,因为PuTTY不会让你保存密码到session里(当然,你可以在putty session或者pageant里面配置ssh key自动登录。请参考我上一篇博文: 如何配置ssh免密码登录
  • 树上面节点多了之后,每次要先在这颗树上找到当前putty会话到底是哪一个,这挺费劲

方法五: 用MobaXterm自带的sftp面板

MobaXterm 在连接一个ssh会话时会自动在侧边栏显示sftp面板,可以在这里上传下载文件(并且支持与Windows程序的文件拖放).

优点: ssh连接时自动显示sftp面板,并会跟随shell的目录变更(另外,MobaXterm也支持zmodem)

缺点:

  • 得从PuTTY迁移到MobaXterm,而MobaXterm虽然有自动导入PuTTY session的功能,但免费版本仅仅支持最多12个会话(规避办法是不用它的session面板,而是每次打开一个本地终端(local terminal),然后用它里面的ssh命令行来连接远程服务器)
  • sftp面板逐层目录进入比较麻烦(如果你在tmux/screen里面工作)
  • zmodem的支持是今年年初在v8.6新加入的功能,还不太稳定,有时候会出错

使用PuTTY时的文件上传下载方法的更多相关文章

  1. 使用ssh 登录Linux 文件上传下载方法

    最简单的方法: 安装WinSCP或者Filezilla, 启动该程序,然后自己输入输入主机名.端口.用户名.密码登录,然后在putty里面用pwd命令看看当前目录,再在WinSCP/Filezilla ...

  2. SpringMVC文件上传下载

    在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...

  3. commons-fileupload实现文件上传下载

    commons-fileupload是Apache提供的一个实现文件上传下载的简单,有效途径,需要commons-io包的支持,本文是一个简单的示例 上传页面,注意设置响应头 <body> ...

  4. Retrofit2文件上传下载及其进度显示

    序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...

  5. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  6. java web 文件上传下载

    文件上传下载案例: 首先是此案例工程的目录结构:

  7. 2013第38周日Java文件上传下载收集思考

    2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...

  8. 文件上传下载样式 --- bootstrap

    在平时工作中,文件上传下载功能属于不可或缺的一部分.bootstrap前端样式框架也使用的比较多,现在根据bootstrap强大的样式模板,自定义一种文件下载的样式. 后续会使用spring MVC框 ...

  9. HttpClient文件上传下载

    1 HTTP HTTP 协议可能是如今 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序须要直接通过 HTTP 协议来訪问网络资源. 尽管在 JDK 的 java.net ...

随机推荐

  1. linux 下部署nodejs(两种方式)

    本次博客的编写时用的系统环境,刚装好的Centos 6.4  64位虚拟机. 另外关于linux 其他系统的安装 可以参考https://github.com/joyent/node/wiki/Ins ...

  2. 7.1 Java中的堆和栈

    栈与堆都是Java用来在Ram中存放数据的地方.Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.ane ...

  3. Hibernate映射之OneToOne(第二篇)

    这是在项目中实际遇到的一个问题,纠结了很久.一开始参考mkyong的 ,两边都写OneToOne ,后来查看了一下项目经理在原来一些模块中的写法. 学习一下: 首先是E-R图:  一个货品可以进行多次 ...

  4. MySQL中distinct和group by性能比较[转]

    MySQL中distinct和group by性能比较[转] 之前看了网上的一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论(仅在个人计算机上测试,可能不全面,仅供参考) 测试过程: 准备一张 ...

  5. [ASE][Daily Scrum]11.13

    今天的计划如下: View Shilin Liu 修复残缺地图下的行进问题           Client Jiafan Zhu(回学校了) 和服务器端对接测试 Yiming Liao       ...

  6. fiddler 无法捕获apache httpclient报文的问题及解决

    问题如题,解决办法为在构建httpclient对象的时候设置代理,因为fiddler内置了一个代理,只有流量(traffic)经过这个代理,才能够被捕捉到. HttpHost proxy = ); C ...

  7. 第十八章:Android 打包部署

    Andriod应用程序如果要在手机或模拟器上安装,必须要有签名! 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序, ...

  8. [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)

    Description Roger Wilco is in charge of the design of a low orbiting space station for the planet Ma ...

  9. SQL Server FileStream

    以往我们对文件管理有两种方法: 数据库只保存文件的路径,具体的文件保存在文件服务器(NFS)上,使用时,编程实现从文件服务器读取文件: 将文件直接以varbinary(max)或image数据类型保存 ...

  10. spring定时任务轮询(spring Task)

    定时任务轮询比如任务自服务器启动就开始运行,并且每隔5秒执行一次. 以下用spring注解配置定时任务.1.添加相应的schema xmlns:task=" xsi:schemaLocati ...