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


326

我已经创建了一个AWS EC2实例,并且希望能够以最简单,最直接的方式使用FileZilla将文件上传到服务器目录。


4
那是什么问题呢?如果您具有SSH / SFTP凭据,只需使用FileZilla并连接到该站点?打开站点管理器,添加您的站点(选择SFTP作为协议)并存储它。每次打开FileZilla时,都要打开Site Manager,因此只需双击Site Manager项。

3
您的任务有任何指定的问题吗?
Martin Prikryl

4
嗯,也许您可​​以接受答案?
Greeso

Answers:


756

我为此创建了一个视频教程。只需检查:

使用FileZilla和SFTP连接到Amazon EC2文件目录,视频教程

上面的视频教程摘要:

  1. 编辑(首选项)>设置>连接> SFTP,单击“添加密钥文件”
  2. 浏览到您的.pem文件的位置,然后选择它。
  3. 将出现一个消息框,询问您是否允许将文件转换为ppk格式。单击“是”,然后为文件命名并存储在某处。
  4. 如果新文件显示在密钥文件列表中,请继续执行下一步。如果不是,则单击“添加密钥文件...”,然后选择转换后的文件。
  5. 文件>站点管理器添加具有以下参数的新站点:

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

    通讯协定:SFTP

    登录类型:正常

    用户:来自文档:“对于Amazon Linux,默认用户名是ec2-user。对于RHEL5,用户名通常是root,但是可能是ec2-user。对于Ubuntu,用户名是ubuntu。对于SUSE Linux,该用户名是用户名是root。对于Debian,用户名是admin。否则,请与AMI提供程序联系。”

    按下“连接”按钮-如果已禁用密码保存,则会提示您登录类型将更改为“询问密码”。说“确定”,然后在连接时在密码提示下按“确定”,而无需输入密码以继续进行对话框。

    注意: FileZilla自动找出要使用的密钥。如上所述,导入密钥后无需指定密钥。

如果您使用Cyber​​duck,请遵循此步骤

如果您有任何权限问题,请查看帖子。


4
我无法访问david jensen链接,但是我可以以ubuntu身份登录(在按照与您上面编写的类似的说明进行操作后),但没有其他任何用户的身份,您是否有任何想法或链接可以将我指向右边方向在这里?
2013年

4
对于免费的ubuntu发行版,用户名将为ubuntu。
条纹2014年

7
要添加到上面提到的内容,请确保删除端口文本框中的默认值21(sftp的默认值),因为它似乎可以与端口22一起使用。当我删除端口时,它开始为我工作。
rahul 2014年

1
在斯特拉克(Streak)救了我
亚伯兰(Abram)

1
@Yasitha Chinthaka我已执行所有步骤,但无法连接到我的实例。它是Windows Server 2012上的大型实例。感谢您的帮助。我在我的安全组上添加了SSH的入站规则。自您上次发布此答案以来,是否还需要其他任何配置或更改?
user2363025

34

如果您使用过的话,这非常简单pem file(我在使用MacOS / windows用户可以遵循相同的步骤。)

  1. 只需下载您的FileZilla(我正在使用MacOS-并下载了免费版本,就足够了)

  2. 在FileZilla(⌘S)-> 新站点中打开站点管理器

在此处输入图片说明

  1. 在“ 主机”字段中输入您的主机名。

例: eca-**-**-**-111.ap-southwest-9.compute.amazonaws.com

  • 选择协议作为SFTP-SSH文件传输协议

  • 选择登录类型作为密钥文件

  • 将您的用户名放在“ 用户”字段中:对我来说,这是ubuntu找到您的ssh用户

注意:

操作系统与用户名

亚马逊-EC2用户

Centos-centos

Debian-管理员或root

Fedora-EC2用户

RHEL-EC2用户或root

SUSE-EC2用户或root

Ubuntu-Ubuntu或root

  1. 在“密钥文件”字段中,浏览您的pem文件:并单击“连接”

在此处输入图片说明

  1. 仅此而已:)玩得开心!

注意:

(请记住,允许从EC2通过SSH连接到您的IP地址)如果没有,您将收到连接错误消息!

注意:允许您的IP通过SFTP连接AWS实例

EC2-> SecurityGroups-> SSH->入站规则->编辑->添加规则(SSH | TCP | 22 |我的IP(它会自动获得ip |规则名称)->保存


filezilla会加密磁盘上的aws密钥还是以纯文本格式存储?
red888 '19

我认为密钥文件已经加密,因此它只是按原样传递文件。未加密。但是,如果您通过Filezilla使用用户名和密码使用普通身份验证,则它们会加密密码。
Elshan

太好了,但要添加一条注释:我使用IPv4 IP地址代替Host主机名称,而不是使用公共主机名。那是它对我有用的时候。
Bennybear

22

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


我在RedHat上没有成功,用户名是“ ec2-user”。
NOTiFY

对于使用Bitnami安装最多的WordPress认证最多的WordPress用户,它在Ubuntu服务器上,因此用户名ubuntu :)
PeterHøjlundAndersen

20

确保使用端口22。SFTP的Filezilla默认为端口21。


7

Yasitha Chinthaka的一个很好的解释得到了公认的答案,其中只有一个小注释:

注意:FileZilla自动找出要使用的密钥。如上所述,导入密钥后无需指定密钥。

就我而言,我已经从过去使用的其他实例中获得了另外5个ppks(新实例的ppk在该列表的底部)。我添加了新实例的新ppk,但不允许我连接到它。错误消息:尝试次数过多。

删除未使用的ppks之后,我终于能够登录到该实例。

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


1
这解决了我遇到的一个问题。感谢您发布!
mnutsch '16


4

FileZilla对我不起作用,我不断收到此错误:

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

起作用的是sftp命令。

与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/dirremotepath/to/dest

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

Filezilla也有sftp
Elshan

与相同的问题filezilla 3.7。sftp命令行工具也对我有用。
Soheil Pourbafrani


0

就我而言,Filezilla将AWS ppk文件发送到我尝试安全连接的其他所有FTP服务器。

太疯狂了。如下所述,有一种解决方法,但是很丑陋。

正如@Lucio M所指出的那样,它的表现不佳。

通过这次讨论:https : //forum.filezilla-project.org/viewtopic.php?t=30605

n0lqu:

同意 但是,鉴于我无法控制服务器的操作,是否有任何方法可以在FileZilla中指定站点应使用密码而不是密钥进行身份验证,反之亦然?还是告诉它先尝试输入密码,然后仅在密码输入失败时再输入密码?在我看来,它先尝试输入密钥,然后再没有机会尝试输入密码。

botg(Filezilla admin)回答:

没有这样的选择。

n0lqu:

是否可以添加这样的选项,或者有人可以推荐任何好的解决方法?现在,我知道的唯一解决方法是从常规首选项中删除密钥,仅在连接到需要该密钥的特定站点时才将其添加回去,然后在完成后再次将其删除,这样就不会弄乱其他站点。

botg:

现在,您可以拥有两个具有单独配置目录的FileZilla实例(例如,一个已安装实例和一个可移植实例)。

timboskratch:

我今天也遇到了同样的问题,并设法通过使用站点管理器中的密码更改连接的“登录类型”来解决该问题。我可以选择“交互”或“询问密码”(不是真的确定有什么区别),而不是“普通”,然后当我尝试再次连接到该站点时,它提示我输入密码,然后连接成功。这并不理想,因为这意味着您每次连接时都必须记住并重新输入密码,但是比必须安装2个FileZilla实例要好。我完全同意,在站点管理器中提供有关如何将FileZilla连接到已设置的每个站点的完整选项(是否使用密码,密钥等)将非常有用(希望使用此功能)!提姆

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

所以它看起来:

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

我希望有一种方法可以告诉FileZilla Site Manager中的哪个ppk用于哪个站点



0

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

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

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

跟随图像:通过FileZilla的Amazon实例访问

3)然后,输入您创建的实例的用户名,对于Amazon-ami,它将是ec2-user,对于其他OS,它将是不同的。然后,输入密码和端口号(21或22)。

4)然后,它将要求输入密钥(pem格式),只需选择.pem文件,然后将确认身份验证。单击是,然后完成。

注意:在EC2安全组中,允许使用端口号21和22,以进行FTP访问。


0

所有您需要做的是:1.在Filezilla上打开站点管理器2.添加新站点3.如果端口不是默认端口,则提供主机地址和端口4.通信类型:SFTP 5.会话类型密钥文件6.输入用户名7。选择关键文件目录,但是要当心Windows文件浏览器将ppk文件作为默认文件,在下拉菜单中选择所有文件,然后选择您的pem文件,您就可以使用了。

由于您添加新站点并在下次要配置时进行配置,因此只需选择保存的站点并进行连接即可。这就对了。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.