如果你是个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. 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析

    今天学习了view bounds的内容,来看下面的代码. //class Pair[T <: Comparable[T]](val first : T,val second : T){//  d ...

  2. 以太网客户端提示windows系统自带共享代理解决方法

    以太网客户端(Dr.COM)登陆出现windows系统自带共享代理,如下图: 系统win+R调出运行: 在服务中,找到Internet Connection Sharing (ICS): 右键属性,将 ...

  3. 安装完成Windows服务后自动打开

    使用DOS进程开启服务 设置serviceProcessInstaller1控件的Account属性为“LocalSystem”设置serviceInstaller1控件的StartType属性为&q ...

  4. django rest_framework--入门教程2

    接上文 这里先写一个GET请求的 1.先在VIEW里定义一个方法 代码如下: @api_view(['GET', 'POST']) def book_request(request): if requ ...

  5. 高手速成android开源项目【blog篇】

    主要介绍那些乐于分享并且有一些很不错的开源项目的个人和组织.Follow大神,深挖大神的项目和following,你会发现很多. 一.个人 JakeWharton 就职于SquareGithub地址: ...

  6. [JAVA] java_实例 获得系统字体

    这个代码可以帮助理解java是如何获取系统字体并设置文字字体: import java.awt.*; import java.awt.event.*; import javax.swing.JComb ...

  7. [翻译]Bob大叔:反思极限编程

    译者注: Bob大叔14年后再次谈论极限编程.极限编程经历了14年的风风雨雨后,Bob大叔将会给它怎么样的定义那? 在我手中拿着的一本白皮薄书,在14年前彻底的改变了软件世界.这本书的标题是解析极限编 ...

  8. UEditor编辑器上传图片开发流程

    在ueditor目录下找到uedior.config.js,找到如下三行: ,imageUrl: "<%=path %>/controller.json" //图片上传 ...

  9. Atitit. 构造ast 语法树的总结attilax v2 q0f

    Atitit. 构造ast 语法树的总结attilax v2 q0f 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 ...

  10. Atitit.可视化编程jbpm6 的环境and 使用总结...

    Atitit.可视化编程jbpm6 的环境and 使用总结... 1. Jbpm的意义 1 2. Jbpm6环境配置 2 2.1. Down 2 2.2. Install eclipse jbpm p ...