2011-10-30 30 views
13

Tôi đã thiết lập một phiên bản EC2 mới trên AWS và tôi đang cố gắng để FTP hoạt động để tải lên ứng dụng của mình. Tôi đã cài đặt VSFTPD như là tiêu chuẩn, vì vậy tôi đã không thay đổi bất cứ điều gì trong tập tin cấu hình (/etc/vsftpd/vsftpd.conf).Đang tải lên sự cố EC2. Làm thế nào để bạn làm FTP?

Tôi chưa đặt cổng 21 trong nhóm bảo mật, vì tôi đang thực hiện thông qua SSH. Tôi đăng nhập vào EC2 của tôi thông qua Termal như vậy

sudo ssh -L 21:localhost:21 -vi my-key-pair [email protected]

tôi mở ra filezilla và đăng nhập vào máy chủ của địa phương. Mọi thứ diễn ra tốt đẹp cho đến khi liệt kê cấu trúc thư mục. Tôi có thể đăng nhập và bên phải và mọi thứ dường như tốt đẹp như bạn có thể xem dưới đây:

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

Có một cái gì đó mà tôi còn thiếu trong tập tin cấu hình của tôi. Cài đặt cần được đặt hoặc tắt. Tôi nghĩ rằng nó là tuyệt vời mà nó kết nối nhưng khi nó hẹn giờ ra, bạn có thể hình dung khuôn mặt của tôi. Nó có nghĩa là thời gian để bắt đầu tìm kiếm lưới và tìm câu trả lời! Bây giờ không có may mắn.

Tôi đang sử dụng chuẩn Amazon AMI 64 bit. Tôi có một thiết lập đèn truyền thống.

Có ai có thể chỉ đạo tôi đi đúng hướng không? Tôi đã đọc rất nhiều về việc làm việc này nhưng tất cả họ đều không đầy đủ, như thể họ đã chán một nửa bằng cách gõ lên làm thế nào để làm điều đó.

Tôi rất thích nghe các bạn cũng làm như thế nào. Nếu nó làm cho cuộc sống dễ dàng hơn. Làm cách nào để bạn tải ứng dụng của mình lên phiên bản EC2? (Các bước vui lòng - nó tiết kiệm rất nhiều thời gian cộng với nó là một nguồn lực tuyệt vời cho người khác.)

Trả lời

36

I figured it out, sau khi sự giúp đỡ chỉ đạo của Antti Haapala.

Bạn thậm chí không cần thiết lập VSFTP trên cá thể được tạo. Tất cả những gì bạn phải làm là đảm bảo các cài đặt nằm ngay trong FileZilla.

Đây là những gì tôi đã làm (Tôi đang trên một mac do đó nó nên được tương tự trên cửa sổ):

  1. Mở tập tin Zilla và đi vào tùy chọn.
  2. Trong tùy chọn, nhấp vào sftp và thêm khóa mới. Đây là cặp khóa của bạn cho cá thể ec2 của bạn. Bạn sẽ phải chuyển đổi nó sang định dạng FileZilla sử dụng. Nó sẽ cung cấp cho bạn một dấu nhắc cho việc chuyển đổi
  3. Bấm ổn và đi lại cho người quản lý trang web
  4. Trong quản lý trang web nhập vào địa chỉ công cộng EC2 của bạn, điều này cũng có thể là IP đàn hồi của bạn
  5. Hãy chắc chắn rằng các giao thức được thiết lập để SFTP
  6. Đặt trong tên người dùng của eC2 người dùng
  7. Hủy bỏ tất cả mọi thứ từ các lĩnh vực mật khẩu - làm cho nó trống
  8. Tất cả đã hoàn tất! Bây giờ kết nối.

Bây giờ bạn có thể đi qua hệ thống EC2 của bạn. Có một bắt. Vì bạn đã đăng nhập với tư cách là người dùng ec2 và không phải root, bạn sẽ không thể sửa đổi bất cứ điều gì. Để giải quyết vấn đề này, hãy thay đổi quyền sở hữu nhóm của thư mục nơi ứng dụng của bạn sẽ nằm (/ var/www/html) hoặc bao giờ. Tôi sẽ thay đổi nó vì vậy nó là một khối lượng EBS. ;) Hãy chắc chắn rằng nhóm này có quyền đọc và thực thi đọc. Nhóm cho người dùng ec2 là người dùng ec2. Để mọi người khác như không có gì. Vì vậy, các lệnh bạn sử dụng khi đăng nhập thông qua ssh

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

Hope this helps một ai đó.

+0

Vâng, bạn luôn có thể sao chép khóa công khai từ .ssh/authorized_keys của người dùng ec2 cho dữ liệu www hoặc bất kỳ người dùng nào được gọi trong phân phối của bạn ... và kết nối trực tiếp là người dùng www. –

+0

Sau một ngày tìm kiếm, câu trả lời này cuối cùng đã làm được. Cảm ơn rất nhiều vì đã gửi bài này! – user1011713

+0

Đây là câu trả lời hay nhất trên trang này. Và chi tiết nhất. Kỹ thuật số cao năm! – courtsimas

4

FTP là một giao thức rất phiền hà vì nó yêu cầu một đường ống thứ cấp để truyền dữ liệu thực sự và không hoạt động tốt khi đường ống. Với ssh bạn nên sử dụng SFTP mà không có gì để làm với FTP nhưng là một giao thức hoàn toàn khác nhau.

đọc cũng trên Wikipedia

+0

Vì vậy, tôi đã đi về tất cả các sai. Tôi đã cố gắng sử dụng FTP khi tôi nên làm SFTP. Cảm ơn Antti Haapala! – Sententia

+3

Không có vấn đề gì, cho phép tiêu diệt FTP :) –

0

Thêm khóa vào www là một công thức cho thảm họa! Bất kỳ vấn đề nhỏ nào với ứng dụng của bạn sẽ trở thành cơn ác mộng về bảo mật.

Là một giải pháp thay thế cho ftp, hãy xem xét sử dụng rsync hoặc chiến lược triển khai "trưởng thành" hơn dựa trên capistrano chẳng hạn. Có rất nhiều công cụ cho việc đó.

0

Mẹo của Antti Haapala là cách duy nhất để làm việc xung quanh với SFTP EC2. Nó hoạt động tốt! Chỉ cần lưu ý rằng bạn cần tạo thư mục /var/www/.ssh/ và sao chép tệp authorized_keys ở đó.

Sau đó, bạn cần thay đổi quyền sở hữu authorized_keys thành www-data để kết nối ssh có thể nhận ra nó. Amazon nên cho mọi người biết điều đó. Tôi tìm kiếm điều này trong đó diễn đàn, Hỏi đáp, vv Không có đầu mối ở tất cả ... Chúc mừng một lần nữa để stackoverflow, con đường để đi haha!

Các vấn đề liên quan