Ftp 上传到EC2有问题。你是怎么做的?

Ftp 上传到EC2有问题。你是怎么做的?,ftp,ssh,amazon-ec2,sftp,Ftp,Ssh,Amazon Ec2,Sftp,我已经在AWS上安装了一个新的EC2实例,我正在尝试让FTP工作来上传我的应用程序。我已经将VSFTPD作为标准安装,所以我没有更改配置文件(/etc/VSFTPD/VSFTPD.conf)中的任何内容 我没有在安全组中设置端口21,因为我是通过SSH进行设置的。我像这样通过termal登录到我的EC2 sudossh-l21:localhost:21-vi我的密钥对ec2-user@ec2-实例 我打开filezilla并登录到本地主机。在列出目录结构之前,一切都很顺利。我可以登录,一切正

我已经在AWS上安装了一个新的EC2实例,我正在尝试让FTP工作来上传我的应用程序。我已经将VSFTPD作为标准安装,所以我没有更改配置文件(/etc/VSFTPD/VSFTPD.conf)中的任何内容

我没有在安全组中设置端口21,因为我是通过SSH进行设置的。我像这样通过termal登录到我的EC2


sudossh-l21:localhost:21-vi我的密钥对ec2-user@ec2-实例

我打开filezilla并登录到本地主机。在列出目录结构之前,一切都很顺利。我可以登录,一切正常,如下所示:


状态:解析本地主机的地址
状态:正在连接到[::1]:21…
状态:连接已建立,正在等待欢迎消息…
回复:220欢迎使用EC2 FTP服务。
命令:用户匿名
回复:331请指定密码。
命令:通过******
响应:230登录成功。
命令:在
上选择UTF8 响应:200始终处于UTF8模式。
状态:已连接
状态:正在检索目录列表…
命令:PWD
答复:257“/”
命令:类型I
响应:200切换到二进制模式。
命令:EPSV
响应:229进入扩展被动模式(| | | | 37302 |)。
命令:列表
错误:连接超时
错误:检索目录列表失败

我的配置文件中是否缺少某些内容。需要设置或关闭的设置。我认为这是伟大的,它连接,但当它超时时,你可以想象我的脸。这意味着是时候开始拖网了,试着找到答案吧!现在运气不好

我使用的是标准的AmazonAMI 64位。我有一个传统的灯设置

谁能把我引向正确的方向?我已经读了很多关于如何让它工作的书,但是这些书都是不完整的,好像他们在输入如何工作的过程中感到无聊


我也想听听你们是怎么做的。如果它能让生活更轻松。如何将应用程序上载到EC2实例?(请执行步骤-它节省了大量时间,而且对其他人来说也是一个很好的资源。)

FTP是一个非常麻烦的协议,因为它需要一个辅助管道来进行实际的数据传输,并且在管道传输时肯定不能很好地工作。对于ssh,您应该使用SFTP,它与FTP无关,但却是一种完全不同的协议


在Antti Haapala的指导帮助下,我找到了答案

您甚至不需要在创建的实例上设置VSFTP。您所要做的就是确保FileZilla中的设置正确

这就是我所做的(我在mac电脑上,所以在windows上应该是类似的):

  • 打开文件zilla并转到首选项
  • 在“首选项”下,单击sftp并添加新密钥。这是ec2实例的密钥对。您必须将其转换为FileZilla使用的格式。它将提示您进行转换
  • 单击“确定”,然后返回“站点管理器”
  • 在SiteManager中输入您的EC2公共地址,这也可以是您的弹性IP
  • 确保协议设置为SFTP
  • 输入ec2用户的用户名
  • 删除密码字段中的所有内容-使其为空
  • 全部完成!现在连接
  • 就这样,您现在可以遍历EC2系统。有一个陷阱。因为您是以ec2用户而不是root用户身份登录的,所以您将无法修改任何内容。要解决这个问题,请更改应用程序所在目录的组所有权(/var/www/html)或其他任何内容。我会更改它,使其位于EBS卷上。;)还要确保此组具有读写和执行权限。ec2用户的组是ec2用户。让其他人一文不值。因此,您在通过ssh登录时使用的命令

    
    sudo chgrp ec2用户文件/文件夹
    sudo chmod 770文件/文件夹


    希望这对某人有所帮助。

    向www添加密钥会带来灾难!应用程序的任何小问题都将成为安全噩梦


    作为FTP的替代,例如考虑使用RSyc或基于CAPISTRANO的更成熟的部署策略。这方面有很多工具。

    Antti Haapala的提示是解决EC2 SFTP问题的唯一方法。它工作得很好!只需注意,您需要创建/var/www/.ssh/文件夹并将授权密钥文件复制到那里


    之后,您需要将授权密钥所有权更改为www数据,以便ssh连接能够识别它。亚马逊应该让人们知道这一点。我在那里的论坛,常见问题等中寻找这个。一点线索也没有。。。再次为stackoverflow干杯,加油,哈哈

    所以我完全错了。我在尝试使用FTP,而我本应该使用SFTP。谢谢安蒂·哈帕拉!没问题,让我们终止FTP:)好吧,您可以始终从ec2用户的.ssh/authorized_密钥复制www数据的公钥,或者在您的发行版中调用用户的任何内容。。。通过一整天的搜索,这个答案终于找到了。非常感谢你发布这篇文章!这是本页上最好的答案。而且是最详细的。数字击掌!明亮的这是我一整天读到的最清楚的答案。我希望人们总是这样写答案…真棒的答案!谢谢