在Windows下我们有很多时候要用到Ftp客户端软件上传文件,默认使用的都是21控制端口,然后再根据Ftp服务器的模式(主动或被动)打开一个数据连接端口,这是早期File Transfer Protocol设计的模式。它有两个不足之处:1、占用了不止一个端口,某些防火墙设置会稍有些麻烦;2、传输的数据是明文的没有加密,不够安全。后来的Sftp就是在OpenSSH基础上的安全文件传输协议。原理我就不多说了,今天主是介绍使用密钥登录Sftp服务器的方法。
1、Winscp简单使用。
打开Winscp―-新建会话―-主机名(填入域名或者IP地址)―-端口号(默认22)―-用户名―-密码(这里先随便输入几个字符)―-密钥文件(可以直接使用Putty的.ppk私钥文件)
2、CuteFTP版本高于8.3.2、FlashFXP版本高于3.7.9 (build 1348)都有支持SSH2的SFTP。
需要注意的是:(1)、CuteFTP所有的站点都只能用同一个公私钥,而FlashFXP却可以为每个站点设置不同的公私钥;(2)、FlashFXP可以使用CuteFTP生成的公私钥;(3)、反过来CuteFTP却不可以使用FlashFXP生成的公私钥;(4)、两个都不能使用puttygen生成的公私钥。不知道高版本的有没有解决这几个问题。
(1)、CuteFTP生成公私钥
打开CuteFTP―-工具―-全局选项―-安全―-SSH2安全―-创建公共/私钥对―-选择密钥类型(DSA or RSA)―-密码可以留空―-选择存放路径―-选择密钥强度(1024、2048、4096)完成。然后登录服务器把生成的公钥Identity.pub的内容添加到/.ssh/authorzied_keys里面最下面一行,保存退出。OK,到此就可以使用密钥登录服务器了。
(2)、FlashFXP利用CuteFTP生成的公私钥
打开FlashFXP―-站点管理器―-选中一个站点―-常规选项卡―-连接类型是SFTP(无SSH)―-连接选项卡―-公共密钥验证―-密钥管理―-导入―-选择SFTP RSA/DSA密钥―-命名―-打开存放CuteFTP私钥文件(Identity)―-点击导入。就OK了。
当然也可以生成一对公私钥,记得要把生成的公钥加入到服务器的/.ssh/authorized_keys里面最下面一行。