使用Filezilla和SFTP连接到Amazon EC2文件目录

我创build了一个AWS EC2实例,我希望能够以最简单,最直接的方式使用FileZilla将file upload到服务器目录。

我为这个检查创build了video教程。

使用FileZilla和SFTP(video教程)连接到Amazon EC2文件目录

以上video教程总结:

  1. 编辑(首选项)>设置>连接> SFTP,点击“添encryption钥文件”
  2. 浏览到.pem文件的位置并select它。
  3. 会出现一个消息框,要求您允许将该文件转换为ppk格式。 单击是,然后给文件一个名称并将其存储在某处。
  4. 如果新文件显示在密钥文件列表中,则继续下一步。 如果没有,然后单击“添encryption钥文件…”并select转换后的文件。
  5. “文件”>“站点pipe理器”使用以下参数添加新站点:

    主机 :您的公共DNS名称ec2实例,或服务器的公共IP地址

    协议 :SFTP

    logintypes :正常

    用户 :从文档 :“对于Amazon Linux,默认的用户名是ec2-user 。对于RHEL5,用户名通常是root,但可能是ec2-user。对于Ubuntu,用户名是ubuntu 。对于SUSE Linux,用户名为root ,对于Debian,用户名为admin ,否则请咨询AMI提供商。

    按“连接”button – 如果保存密码已禁用,系统将提示您将logintypes更改为“询问密码”。 说'OK',连接时,在密码提示处按'确定'而不input密码继续通过对话框。

    注意: FileZilla会自动找出使用哪个键。 如上所述,导入后不需要指定密钥。

如果您使用Cyber​​duck,请按照以下步骤操作

如果您有任何权限问题,请检查此post。

如果有人按照所有步骤操作并且没有成功,请确保您使用的是正确的用户。 我试图使用“ec2用户”,但我需要使用“Ubuntu的”。

确保使用端口22. Filezilla默认将端口21用于SFTP。

只是一个小小的注释解释了Yasitha Chinthaka接受的答案:

注意:FileZilla会自动找出使用哪个键。 如上所述,导入后不需要指定密钥。

在我的情况下,我已经有其他5个来自我以前使用的其他实例(新实例的ppk位于该列表的底部)的其他5个实例。 我添加了新的实例的新ppk,它不会让我连接到它。 错误消息:尝试/尝试次数太多。

我删除了未使用的ppks后,终于能够login到实例。

所以不,Filezilla不是那么聪明;-)

您可以使用任何FTP客户端。 我使用winscp,它工作得很好。 在所有这些客户中; 你可以指定ssh安全密钥。

老问题,但我发现,所有你需要的是添加ppk文件。 设置 – >连接 – > SFTP – >添encryption钥文件用户名和主机与使用在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2- connect-to-instance-linux.html可以帮助别人。

在我的情况下,Filezilla将AWS ppk文件发送到我尝试安全连接到的每个其他FTP服务器。

太疯狂了。 有如下所示的解决方法,但它是丑陋的。

它的行为不如@Lucio M指出的那样。

从这个讨论: https : //forum.filezilla-project.org/viewtopic.php?t = 30605

n0lqu:

同意。 然而,由于我无法控制服务器的操作,有什么办法可以在FileZilla中指定一个站点应该使用密码而不是密钥进行身份validation,反之亦然? 或告诉它先尝试密码,然后只有密码失败时才input密码? 在我看来,它首先尝试关键,然后没有机会尝试密码。

botg(Filezilla admin)回答:

没有这样的select。

n0lqu:

可以添加这样的选项,还是有任何人可以推荐的良好解决方法吗? 现在,我所知道的唯一解决方法是从通用首选项中删除密钥,只有在连接到需要的特定站点时才将其添加回来,然后在完成时再次删除它,以免混淆其他站点。

botg:

现在,你可以有两个FileZilla实例与单独的configuration目录(例如一个安装和一个便携式)。

timboskratch:

我今天刚刚有这个相同的问题,并设法通过在站点pipe理器中使用密码更改连接的“logintypes”来解决它。 而不是“正常”,我可以select“互动”或“询问密码”(不知道有什么区别),然后当我试图再次连接到网站,它给了我一个提示input我的密码,然后连接成功。 这并不理想,因为这意味着每次连接时都必须记住并重新input密码,但要比安装2个FileZilla实例更好。 我完全同意在站点pipe理器中有充分的select,让你可以selectFileZilla连接到每个设置的站点(无论是使用密码,密钥等)。希望这会有所帮助! 蒂姆

另请参阅: https : //forum.filezilla-project.org/viewtopic.php?t=34676

所以它看起来:

对于具有密钥/密码的多个FTP站点,请使用多个Filezilla安装,或对所有服务器使用相同的ppk密钥。

我希望有一种方式告诉FileZilla哪个ppk是Site Manger中的哪个站点

最简单直接的就是创build一个FTPlogin。 这里是一个简单易懂的教程网站在stackoverflow本身,如何设置东西在2分钟… 在亚马逊云服务器上设置FTP

首先Filezilla是一个FTP / SFTP客户端/服务器。 我们需要为此使用客户端。

1)从URL下载客户端: https : //filezilla-project.org/

2)转到AWSpipe理控制台,然后转到EC2。 select您要访问的实例,然后复制该实例的DNS或IP地址,然后将其粘贴到Filezilla主机名中。

关注图像: 通过FileZilla访问Amazon实例

3)然后,input您创build的实例的用户名,对于Amazon-ami,它将是ec2-user,对于其他操作系统则不同。 然后,input21或22的密码和端口。

4)然后,它会询问pem格式的密钥,只需select.pem文件,然后确认authentication。 点击是,然后你就完成了。

注意:在您的EC2安全组中,允许端口号21和22以FTP访问所需的为准。

FileZilla没有为我工作,我不断得到这个错误:

Disconnected: No supported authentication methods available (server sent: publickey) 

什么工作是sftp命令。

用EC2连接EC2实例

 sftp -i "path/to/key.pem" ec2-user@ec2-54-212-34-84.us-west-2.compute.amazonaws.com 

下载文件/目录

要下载path/to/source/file.txtpath/to/source/dir

 lcd ~/Desktop cd path/to/source get file.txt get -r dir 

上传文件/目录

要将localpath/to/source/file.txt~/localpath/to/source/dir remotepath/to/destremotepath/to/dest

 lcd localpath/to/source cd remotepath/to/dest put file.txt put -r dir 

https://www.cloudjojo.com/how-to-connect-ec2-machine-with-ftp/

  1. 首先你必须在你的ec2机器上安装一些ftp服务器,比如vsftpd。
  2. configurationvsftpdconfiguration文件允许写入和打开端口。
  3. 为ftp客户端创build用户。
  4. 连接ftp客户端,如filezilla。

确保您在aws安全组上打开了端口21。