367

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

4

15 回答 15

837

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

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

以上视频教程总结:

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

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

    协议:SFTP

    登录类型:普通

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

    按下连接按钮 - 如果已禁用保存密码,系统将提示您将登录类型更改为“询问密码”。说“确定”并在连接时,在密码提示下按“确定”而不输入密码以继续通过对话框。

    注意: FileZilla 会自动确定要使用的密钥。如上所述,您不需要在导入后指定密钥。

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

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

于 2013-06-16T13:50:17.227 回答
58

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 - 管理员或根

Fedora - ec2 用户

RHEL - ec2 用户或 root

SUSE - ec2 用户或 root

Ubuntu - ubuntu 或 root

  1. 对于密钥文件字段,浏览您的 pem 文件:然后单击连接

在此处输入图像描述

  1. 就是这样:) 玩得开心!

笔记:

(请记住允许从 EC2 SSH 连接到您的 IP 地址)否则您将收到连接错误消息!

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

EC2 -> 安全组 -> SSH -> 入站规则 -> 编辑 -> 添加规则(SSH|TCP|22|我的 IP(自动获取 ip | 规则名称)-> 保存

于 2018-03-01T16:07:14.540 回答
23

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

于 2013-11-21T03:09:13.397 回答
21

确保使用端口 22。Filezilla 将默认使用端口 21 进行 SFTP。

于 2014-08-07T07:05:16.210 回答
7

对 Yasitha Chinthaka 得到充分解释并接受的答案只有一个小注释:

注意:FileZilla 会自动确定要使用的密钥。如上所述,您不需要在导入后指定密钥。

在我的情况下,我已经从过去使用的其他实例中获得了另外 5 个 ppk(新实例的 ppk 位于该列表的底部)。我添加了新实例的新 ppk,但它不允许我连接到它。错误消息:太多尝试/尝试。

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

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

于 2015-04-30T01:33:16.427 回答
5

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/dir_remotepath/to/dest

lcd localpath/to/source
cd remotepath/to/dest
put file.txt
put -r dir
于 2017-10-13T08:18:12.563 回答
4

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

于 2013-05-25T11:44:00.103 回答
0

老问题,但我发现,您只需要添加 ppk 文件。设置 -> 连接 -> SFTP -> 添加密钥文件用户名和主机与使用http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-中提到的 putty 时提供的相同connect-to-instance-linux.html 可能对某人有所帮助。

于 2013-11-13T04:18:18.033 回答
0

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

太疯狂了。有一个如下所述的解决方法,但它很难看。

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

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

n0lqu:

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

botg(Filezilla 管理员) 回复:

没有这样的选择。

n0lqu:

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

博格:

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

音色:

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

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

所以它看起来:

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

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

于 2015-12-16T07:40:29.650 回答
0

对于 Ubuntu 用户,还有另一种无需 PuttyGen 即可制作和设置密钥的方法。我假设您可以通过终端连接到服务器并希望设置 FileZilla 进行文件传输。

在终端执行命令:

ssh-keygen

它将提示您输入私钥和公钥文件的目标路径,默认情况下它是

/home/user/.ssh/id_rsa/home/user/.ssh/id_rsa.pub

你可以保持原样。然后,打开公钥并复制其内容:

cat .ssh/id_rsa.pub

在终端中,在服务器端,打开 .ssh/authorized_keys 并将复制的行粘贴到那里:

nano .ssh/authorized_keys

您可能会看到一些现有的行,例如“ssh-rsa AAAAB3Nz...”。没关系。只需输入新行并粘贴之前复制的行。

于 2021-06-06T07:42:31.870 回答
0

如果您习惯使用命令行,并使用 git bash 从您的 PC ssh 到远程服务器(ubuntu 等),您可以使用 sftp,如下所示,效果很好,而且看起来非常快。pem 文件可以从 aws EC2 或 Lightsail 或任何服务器下载。在下面的命令中替换 pem 文件的路径/名称。还将 IP 地址替换为远程服务器的 IP 地址 [比如远程 Unix 或 linux/ubuntu 服务器。]

$ sftp -i /c/Users/pat/Downloads/LightsailDefaultKey-us-east-1-2.pem ubuntu@123.45.6789

使用 sftp 实际上传/下载的附加命令 转到远程文件夹 sftp> pwd sftp> cd /home/ubuntu/mymedia

转到本地文件夹 sftp> lpwd 本地工作目录:/ sftp> lcd /c/Users/pat/Desktop/Camtasia 将本地文件上传到服务器 sftp> put *
如果需要下载到本地 PC,请使用 get sftp> get *

注意:这类似于使用 pem 文件连接到远程的 ssh。$ ssh -i /c/Users/pat/Downloads/LightsailDefaultKey-us-east-1-2.pem ubuntu@123.45.6789

谢谢!

于 2020-08-03T15:39:31.923 回答
0

最简单直接的方法是创建一个 FTP 登录。这是一个关于stackoverflow本身的简单易懂的教程站点,如何在2分钟内完成设置... 在亚马逊云服务器上设置FTP

于 2016-07-05T22:00:21.403 回答
0

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

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

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

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

3) 然后,输入您创建的实例的用户名,对于 Amazon-ami,它将是 ec2-user,对于其他操作系统,它会有所不同。然后,输入密码和端口,将是 21 或 22。

4) 然后,它会询问密钥,它是 pem 格式的,只需选择 .pem 文件,然后它会确认身份验证。单击是,然后您就完成了。

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

于 2016-07-22T12:35:56.373 回答
0

您所要做的就是: 1. 在 filezilla 上打开站点管理器 2. 添加新站点 3. 如果端口不是默认端口,请提供主机地址和端口 4. 通信类型:SFTP 5. 会话类型密钥文件 6. 输入用户名 7.选择关键文件目录,但要注意 Windows 文件资源管理器默认查找 ppk 文件选择下拉列表中的所有文件,然后选择您的 pem 文件,一切顺利。

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

于 2018-01-30T10:53:18.040 回答
-6

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

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

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

于 2016-11-26T18:16:40.677 回答