35

我有一个正在运行的 Amazon EC2 实例。当我访问 url 时,我得到了 Apache 测试页面,它说我必须将我的文件上传到/var/html/

我的问题是,我该怎么做?我使用 Mac OS X 的终端来访问实例。

FTP似乎不起作用。还有其他方法吗?

4

6 回答 6

68

如果您使用的是 Mac(或其他 *nix 系统),只需将其复制粘贴到终端即可通过 SSH 上传文件

scp -i MyKeyFile.pem FileToUpload.pdf ubuntu@ec2-123-123-123-123.compute-1.amazonaws.com:FileToUpload.pdf

将“ec2-123-123-123-123.compute-1.amazonaws.com”替换为您实例的公有 DNS 名称

于 2012-11-06T21:51:18.257 回答
16

实际上,您根本不应该使用 FTP 来访问Amazon EC2实例(或任何其他服务器,但这是一个不同的问题,请参阅稍微夸张但仍然合适的咆哮FTP Must Die)。

相反,您应该使用SSH 文件传输协议 (SFTP),它通常在开箱即用的 EC2 实例上运行良好,而无需在 SSH 访问之外进行额外的安全设置,即因为您已经可以通过您的 SSH 密钥访问也可以将这些用于您最喜欢的 (S)FTP 客户端的 SFTP。

(S)FTP安全

比没有额外安全/防火墙设置的开箱即用支持更重要的是 SFTP 是安全的,而 FTP 正好相反,请参阅例如What's Your Password?xyzzy?伟大的!

如前所述,FTP 早于 Internet 活动被认为是恶意的时代。因此,它没有针对密码嗅探、中间人攻击等的安全措施

您的用户名和密码从 FTP 客户端以明文形式传输到 FTP 服务器。任何可以控制从客户端到服务器的路径上的任何路由器的人都可以读取整个会话,包括您的密码。[强调我的]

请注意,这可以通过使用FTP over SSLFTP over SSH在一定程度上得到补救,但两者都需要额外的工作,并且对于像您这样的常规用例而言,与 SFTP 相比没有任何好处。

(S)FTP 客户端

现在大多数 FTP 客户端都应该以一种或另一种方式支持 SFTP,理想情况下促进SSH 身份验证代理,如ssh-agent (Unix/Linux/Mac OS X) 或Pageant (Putty) (Windows),以避免需要显式指定 SSH使用的关键(当然这也是可能的)。

Mac OS X 可能有很多 SFTP 客户端,免费的一个是Cyber​​duck,它是适用于 Mac 和 Windows 的Libre FTP、SFTP、WebDAV 和云存储浏览器(请参阅他们的SFTP Howto)。

于 2012-04-28T17:27:56.943 回答
2

您可以尝试kitten实用程序,它是 boto3 的包装器。您可以轻松地上传/下载文件并在 EC2 服务器上或同时在多个服务器上运行命令。

kitten put -i ~/.ssh/key.pem cat.jpg /tmp [SERVER NAME][SERVER IP]

服务器名称是例如ubuntuec2-user等。

这会将cat.jpg文件上传到/tmp服务器目录

于 2021-04-12T11:34:49.807 回答
0

对不起。没有一个答案对我有帮助..但我从答案中学到了。帮助我的是我使用了错误的安全密钥名。

有用的提示:

  • 1)如果您有多个安全密钥(.pem 文件),请使用密钥对名称检查您的 AWS 账户
  • 2)检查你的SCP命令参数的顺序。
  • 3) 检查“ubuntu”是否有写入目标目录的权限。
于 2019-06-17T20:15:33.600 回答
0

这可能有点晚了,但我建议使用 Filezilla 程序。它具有非常用户友好的界面,可让您将文件和文件夹从一台服务器移动到另一台服务器,或者通过拖放操作您的本地计算机。当然它没有使用终端那么快,但它是新手必备工具。此外,它是免费的,但如果您真的喜欢它,请支付 10 美元并支持您的免费软件开发人员。我为 Mac 做了它,可以在应用商店中找到。

于 2021-09-21T21:47:19.880 回答
-1

最简单的方法是从浏览器安装 webmin 并使用文件管理器(java 插件)。

//进入主文件夹

cd ~

//下载最新版本

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.660-1.noarch.rpm

//安装

sudo rpm -U webmin-1.660-1.noarch.rpm

//修改root用户的默认密码

passwd

最后,在安全组中打开 10000 端口

然后,登录

https://server_name:10000 

使用用户:root 密码:what_you_set_before

于 2013-11-15T16:16:47.910 回答