我创建了一个 AWS EC2 实例,我希望能够以最简单和最直接的方式使用 FileZilla 将文件上传到服务器目录。
15 回答
我为此创建了一个视频教程。只需检查:
使用 FileZilla 和 SFTP 连接到 Amazon EC2 文件目录,视频教程
以上视频教程总结:
- 编辑(首选项)> 设置 > 连接 > SFTP,单击“添加密钥文件”
- 浏览到 .pem 文件的位置并选择它。
- 将出现一个消息框,询问您是否允许将文件转换为 ppk 格式。单击是,然后为文件命名并将其存储在某处。
- 如果新文件显示在密钥文件列表中,则继续下一步。如果没有,请单击“添加密钥文件...”并选择转换后的文件。
文件 > 站点管理器使用以下参数添加新站点:
Host:您的 EC2 实例的公共 DNS 名称,或服务器的公共 IP 地址。
协议:SFTP
登录类型:普通
用户:来自文档:“对于 Amazon Linux,默认用户名是ec2-user。对于 RHEL5,用户名通常是 root,但可能是 ec2-user。对于 Ubuntu,用户名是ubuntu。对于 SUSE Linux,用户名为root。对于 Debian,用户名为admin。否则,请咨询您的 AMI 提供商。"
按下连接按钮 - 如果已禁用保存密码,系统将提示您将登录类型更改为“询问密码”。说“确定”并在连接时,在密码提示下按“确定”而不输入密码以继续通过对话框。
注意: FileZilla 会自动确定要使用的密钥。如上所述,您不需要在导入后指定密钥。
如果您使用 Cyberduck,请遵循此。
如果您有任何权限问题,请查看此帖子。
pem file
如果您使用的是您的(我使用的是 macOS / windows 用户可以按照相同的步骤进行操作,这非常简单。)
只需下载您的FileZilla(我使用的是 macOS - 并下载了免费版本,这就足够了)
在 FileZilla (⌘S) 中打开站点管理器->新建站点
- 将您的主机名放在主机字段中。
例子:
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
- 对于密钥文件字段,浏览您的 pem 文件:然后单击连接
- 就是这样:) 玩得开心!
笔记:
(请记住允许从 EC2 SSH 连接到您的 IP 地址)否则您将收到连接错误消息!
注意:允许您的 IP 通过 SFTP 连接您的 AWS 实例
EC2 -> 安全组 -> SSH -> 入站规则 -> 编辑 -> 添加规则(SSH|TCP|22|我的 IP(自动获取 ip | 规则名称)-> 保存
如果有人按照所有步骤操作但没有成功,请确保您使用的是正确的用户。我试图使用“ec2-user”,但我需要使用“ubuntu”。
确保使用端口 22。Filezilla 将默认使用端口 21 进行 SFTP。
对 Yasitha Chinthaka 得到充分解释并接受的答案只有一个小注释:
注意:FileZilla 会自动确定要使用的密钥。如上所述,您不需要在导入后指定密钥。
在我的情况下,我已经从过去使用的其他实例中获得了另外 5 个 ppk(新实例的 ppk 位于该列表的底部)。我添加了新实例的新 ppk,但它不允许我连接到它。错误消息:太多尝试/尝试。
删除未使用的 ppks 后,我终于能够登录到实例。
所以不,Filezilla 没那么聪明 ;-)
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.txt
和path/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
您可以使用任何 FTP 客户端。我使用winscp,它工作得很好。在所有这些客户中;您可以指定 ssh 安全密钥。
老问题,但我发现,您只需要添加 ppk 文件。设置 -> 连接 -> SFTP -> 添加密钥文件用户名和主机与使用http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-中提到的 putty 时提供的相同connect-to-instance-linux.html 可能对某人有所帮助。
就我而言,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 中的哪个站点
对于 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...”。没关系。只需输入新行并粘贴之前复制的行。
如果您习惯使用命令行,并使用 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
谢谢!
最简单直接的方法是创建一个 FTP 登录。这是一个关于stackoverflow本身的简单易懂的教程站点,如何在2分钟内完成设置... 在亚马逊云服务器上设置FTP
首先,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。
您所要做的就是: 1. 在 filezilla 上打开站点管理器 2. 添加新站点 3. 如果端口不是默认端口,请提供主机地址和端口 4. 通信类型:SFTP 5. 会话类型密钥文件 6. 输入用户名 7.选择关键文件目录,但要注意 Windows 文件资源管理器默认查找 ppk 文件选择下拉列表中的所有文件,然后选择您的 pem 文件,一切顺利。
由于您添加了新站点并在下次要连接时进行了配置,因此只需选择您保存的站点并连接即可。这就对了。
https://www.cloudjojo.com/how-to-connect-ec2-machine-with-ftp/
- 首先你必须在你的 ec2 机器上安装一些 ftp 服务器,比如 vsftpd。
- 配置 vsftpd 配置文件以允许写入和打开端口。
- 为 ftp 客户端创建用户。
- 与 filezilla 之类的 ftp 客户端连接。
确保在 aws 安全组上打开端口 21。