簡體   English   中英

上載到EC2問題。 您如何做FTP?

[英]Uploading to EC2 problems. How do you do FTP?

我在AWS上設置了一個新的EC2實例,並且試圖使FTP能夠上載我的應用程序。 我已經按標准安裝了VSFTPD,所以我沒有更改配置文件(/etc/vsftpd/vsftpd.conf)中的任何內容。

我沒有在安全組中設置端口21,因為我正在通過SSH進行設置。 我像這樣通過Terminal登錄到EC2

sudo ssh -L 21:localhost:21 -vi my-key-pair ec2-user@ec2-instance

我打開filezilla並登錄到本地主機。 一切順利,直到列出目錄結構為止。 我可以正確登錄並看到所有內容,如下所示:

Status: Resolving address of localhost
Status: Connecting to [::1]:21...
Status: Connection established, waiting for welcome message...
Response: 220 Welcome to EC2 FTP service.
Command: USER anonymous
Response: 331 Please specify the password.
Command: PASS * ** * **
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: EPSV
Response: 229 Entering Extended Passive Mode (|||37302|).
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing

我的配置文件中缺少什么嗎? 需要設置或關閉的設置。 我以為它很棒,但是當超時時,您可以想象我的臉。 這意味着該開始抓網嘗試並找到答案了! 現在沒有運氣。

我正在使用標准的Amazon AMI 64位。 我有一個傳統的燈泡設置。

誰能引導我正確的方向? 我已經讀了很多有關如何使它工作的信息,但是它們都不完整,好像他們在輸入如何做的過程中感到無聊一樣。

我很想聽聽你們也一樣。 如果讓生活更輕松。 如何將您的應用程序上傳到EC2實例? (請采取一些步驟-這樣可以節省大量時間,並且對其他人來說是很好的資源。)

在Antti Haapala的指導幫助下,我找到了答案。

您甚至不需要在創建的實例上進行VSFTP設置。 您所要做的就是確保FileZilla中的設置正確。

這就是我所做的(我在Mac上,因此在Windows上應該類似):

  1. 打開文件zilla並轉到首選項。
  2. 在首選項下,單擊sftp並添加一個新密鑰。 這是您的ec2實例的密鑰對。 您必須將其轉換為FileZilla使用的格式。 它將提示您進行轉換
  3. 單擊確定,然后返回網站管理員
  4. 在站點管理員中輸入您的EC2公共地址,這也可以是您的彈性IP
  5. 確保協議設置為SFTP
  6. 輸入ec2-user的用戶名
  7. 從密碼字段中刪除所有內容-將其保留為空白
  8. 全部做完! 現在連接。

就這樣,您現在可以遍歷您的EC2系統。 有一個陷阱。 因為您是以ec2-user身份登錄的,而不是root用戶,所以您將無法進行任何修改。 要解決此問題,請更改您的應用程序所在目錄(/ var / www / html)或其他內容的組所有權。 我會更改它,使其在EBS卷上。 ;)還要確保該組具有讀寫權限。 ec2-user的組是ec2-user。 別無其他。 因此,您通過ssh登錄時使用的命令

sudo chgrp ec2-user file/folder
sudo chmod 770 file/folder

希望這對某人有幫助。

FTP是一個非常麻煩的協議,因為它需要用於實際數據傳輸的輔助管道,並且在通過管道傳輸時肯定不能很好地工作。 使用ssh時,應使用與FTP無關的SFTP,但它是完全不同的協議。

另請閱讀Wikipedia

Antti Haapala的技巧是使用EC2 SFTP的唯一方法。 它很好用! 只需注意,您需要創建/var/www/.ssh/文件夾,然后在其中復制authorized_keys文件。

之后,您需要將authorized_keys所有權更改為www-data,以便ssh連接可以識別它。 亞馬遜應該讓人們知道這一點。 我在那里的論壇,常見問題解答等中尋找了這個。根本沒有任何線索...再次為stackoverflow歡呼雀躍,哈哈!

將密鑰添加到www是災難的根源! 您的應用中的任何小問題都將成為安全噩夢。

作為ftp的替代方法,請考慮使用rsync或基於capistrano的“成熟”部署策略。 周圍有很多工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM