通过Filezilla和SFTP连接到Amazon EC2文件目录

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

505167 次浏览

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

我为此制作了一个视频教程。只是检查:

< a href = " http://y2u。be/e9BDvg42-JI" rel="noreferrer">使用FileZilla和SFTP连接到Amazon EC2文件目录,视频教程

以上视频教程总结:

  1. 编辑(首选项)>设置>连接> SFTP,点击“添加密钥文件”
  2. 浏览到.pem文件的位置并选择它。
  3. 将出现一个消息框,要求您允许将文件转换为ppk格式。单击Yes,然后为文件指定一个名称并将其存储在某个地方。
  4. 如果新文件显示在Keyfiles列表中,则继续执行下一步。如果不是,那么点击“Add keyfile…”并选择转换后的文件。
  5. File > Site Manager使用以下参数添加一个新站点:

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

    协议: SFTP

    登录类型:正常

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

    按连接按钮-如果密码保存已被禁用,您将提示登录类型将更改为“询问密码”。说“OK”,当连接时,在密码提示下按“OK”,无需输入密码即可继续通过对话框。

    FileZilla自动找出要使用的键。

    .导入密钥后,不需要指定密钥

如果你使用Cyberduck,跟随

检查帖子,如果你有任何权限问题。

老问题,但我发现,所有你需要的是添加ppk文件。 设置—>连接—> SFTP—>添加keyfile 用户名和主机与你在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html中提到的使用putty时提供的相同

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

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

对于已被广泛接受的答案只是一个小注意 Yasitha Chinthaka: < / p >

注意:FileZilla自动计算使用哪个键。你不需要

.

.

.

在我的例子中,我已经从我过去使用的其他实例中获得了其他5个ppk(新实例的ppk位于列表的底部)。我添加了新实例的新ppk,但它不让我连接到它。错误信息:too many tries / attempts。

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

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

在我的例子中,Filezilla将AWS ppk文件发送到我试图安全连接的每个其他FTP服务器。

这太疯狂了。下面有一个解决方案,但它很难看。

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

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

n0lqu:

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

Filezilla admin回复:

没有这样的选择。

n0lqu:

是否可以添加这样的选项,或者是否有任何人都可以推荐的好的变通方法?目前,我所知道的唯一解决办法是从一般首选项中删除键,只有在连接到需要它的特定网站时才添加它,然后在完成后再次删除它,这样它就不会扰乱其他网站。

botg:

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

timboskratch:

我今天刚刚遇到了同样的问题,并通过在网站管理器中使用密码更改连接的“登录类型”来解决它。而不是“正常”,我可以选择“互动”或“询问密码”(不太确定有什么区别),然后当我试图再次连接到该网站时,它会提示我输入密码,然后成功连接。 这并不理想,因为这意味着每次连接时都必须记住并重新输入密码,但总比安装2个FileZilla实例要好。 我完全同意,在站点管理器中可以完全选择FileZilla如何连接到已设置的每个站点(是否使用密码、密钥等),这将是非常有用的。 希望这对你有帮助! 蒂姆。< / p >
< p >也看到: https://forum.filezilla-project.org/viewtopic.php?t=34676 < / p >

所以,看起来:

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

我希望有一种方法告诉FileZilla哪个ppk是为站点管理器中的哪个站点

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

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

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

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

图片:通过FileZilla访问Amazon实例

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

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

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

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

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

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

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

下载文件/ dirs

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

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

上传文件/ dirs

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

你所要做的就是: 1. 在filezilla上打开站点管理器 2. 添加新站点 3.如果端口不是默认端口,请给出主机地址和端口 4. 通信类型:SFTP 5. 会话类型密钥文件 6. 把用户名 7. 选择密钥文件目录,但要注意Windows文件资源管理器会默认查找PPK文件,在下拉菜单中选择所有文件,然后选择pem文件,这样就可以了

因为你添加了新的网站和配置下次当你想连接时,只需选择你保存的网站和连接。就是这样。

如果你使用你的pem file,这是非常简单的(我使用macOS / windows用户可以遵循相同的步骤。)

  1. 只需下载你的FileZilla(我使用的是macOS -并下载了免费版本,这就足够了)

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

enter image description here

  1. 将主机名放在宿主字段中。

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

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

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

  • 把你的用户名放在用户字段:对我来说是ubuntu (找到您的SSH用户)

注意:

操作系统vs用户名

Amazon - ec2-user

Centos - Centos

Debian管理员或根用户

Fedora - ec2-user

RHEL - ec2用户或root用户

SUSE - ec2-user或root

Ubuntu - Ubuntu或root

  1. 对于Key文件字段,浏览pem文件:和点击连接

enter image description here

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

注意:

(请记住允许从EC2连接到您的IP地址)如果不是,你将得到连接错误消息!

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

< p > EC2→SecurityGroups→SSH→入站规则->编辑→添加规则( SSH|TCP|22|我的IP(它的IP自动|名称规则)>保存< / p >

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

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

使用sftp实际上传/下载的附加命令 转到远程文件夹 sftp>松材线虫病 sftp>cd /home/ubuntu/mymedia < / p >

进入本地文件夹 sftp>lpwd 本地工作目录:/ sftp>液晶/ c /用户/ pat /桌面/ Camtasia 上传本地文件到服务器 sftp>输入*
如果需要下载到本地PC,可以使用get sftp>得到* < / p >

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

谢谢!

对于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…”没关系。简单地放置新行,并粘贴之前复制的行。