เชื่อมต่อกับไดเร็กทอรีไฟล์ Amazon EC2 โดยใช้ Filezilla และ SFTP


326

ฉันสร้าง AWS EC2 อินสแตนซ์และฉันต้องการที่จะสามารถอัปโหลดไฟล์ไปยังไดเรกทอรีเซิร์ฟเวอร์โดยใช้ FileZilla ในแบบที่ง่ายที่สุดและตรงไปตรงมาที่สุด


4
ดังนั้นคำถามคืออะไร หากคุณมีข้อมูลรับรอง SSH / SFTP เพียงใช้ FileZilla และเชื่อมต่อกับเว็บไซต์ เปิดตัวจัดการไซต์เพิ่มไซต์ของคุณ (เลือก SFTP เป็นโปรโตคอล) และเก็บไว้ ทำให้ Site Manager เปิดขึ้นทุกครั้งที่คุณเปิด FileZilla ดังนั้นคุณต้องดับเบิลคลิกที่รายการ Site Manager
Shi

3
ปัญหาที่ระบุใด ๆ ที่คุณมีกับงานของคุณ?
Martin Prikryl

4
อืมคุณอาจยอมรับคำตอบได้ไหม?
Greeso

คำตอบ:


756

ฉันได้สร้างวิดีโอการสอนสำหรับเรื่องนี้ เพียงตรวจสอบ:

เชื่อมต่อกับไดเรกทอรีไฟล์ Amazon EC2 โดยใช้ FileZilla และ SFTP, วิดีโอการสอน

บทสรุปของวิดีโอสอนด้านบน:

  1. แก้ไข (การตั้งค่า)> การตั้งค่า> การเชื่อมต่อ> SFTP คลิก "เพิ่มไฟล์คีย์"
  2. เรียกดูตำแหน่งของไฟล์. pem ของคุณแล้วเลือก
  3. กล่องข้อความจะปรากฏขึ้นเพื่อขออนุญาตจากคุณให้แปลงไฟล์เป็นรูปแบบ ppk คลิกใช่จากนั้นตั้งชื่อไฟล์และเก็บไว้ที่ใดที่หนึ่ง
  4. หากไฟล์ใหม่แสดงขึ้นในรายการของ Keyfiles ให้ทำตามขั้นตอนต่อไป หากไม่มีให้คลิก "เพิ่ม keyfile ... " และเลือกไฟล์ที่แปลงแล้ว
  5. ไฟล์> ตัวจัดการไซต์เพิ่มไซต์ใหม่ด้วยพารามิเตอร์ต่อไปนี้:

    โฮสต์ : ชื่อ DNS สาธารณะของคุณของอินสแตนซ์ EC2 ของคุณหรือที่อยู่ IP สาธารณะของเซิร์ฟเวอร์

    โปรโตคอล : SFTP

    ประเภทการเข้าสู่ระบบ : ปกติ

    ผู้ใช้ : จากเอกสาร : "สำหรับ Amazon Linux ชื่อผู้ใช้เริ่มต้นคือผู้ใช้ec2สำหรับ RHEL5 ชื่อผู้ใช้มักจะเป็นรูท แต่อาจเป็นผู้ใช้ ec2 สำหรับ Ubuntu ชื่อผู้ใช้คืออูบุนตูสำหรับ SUSE Linux ชื่อผู้ใช้คือรูทสำหรับ Debian ชื่อผู้ใช้คือผู้ดูแลระบบมิฉะนั้นตรวจสอบกับผู้ให้บริการ AMI ของคุณ "

    กดปุ่มเชื่อมต่อ - หากการบันทึกรหัสผ่านถูกปิดใช้งานคุณจะได้รับแจ้งว่าประเภทการเข้าสู่ระบบจะเปลี่ยนเป็น 'ขอรหัสผ่าน' พูดว่า 'ตกลง' และเมื่อเชื่อมต่อที่พรอมต์รหัสผ่านให้กด 'ตกลง' โดยไม่ต้องป้อนรหัสผ่านเพื่อดำเนินการผ่านกล่องโต้ตอบ

    หมายเหตุ: FileZilla จะระบุว่าจะใช้คีย์ใดโดยอัตโนมัติ คุณไม่จำเป็นต้องระบุคีย์หลังจากนำเข้าดังที่อธิบายไว้ข้างต้น

ถ้าคุณใช้ Cyberduck ทำตามนี้

ตรวจสอบโพสต์นี้ถ้าคุณมีปัญหาสิทธิ์ใด ๆ


4
สำหรับชื่อผู้ใช้การแจกแจงระดับ Ubuntu ฟรีจะเป็น Ubuntu
ช่วง

7
หากต้องการเพิ่มสิ่งที่กล่าวถึงข้างต้นให้แน่ใจว่าคุณลบค่าเริ่มต้นที่ 21 ในกล่องข้อความพอร์ต (ค่าเริ่มต้นสำหรับ SFTP) เนื่องจากดูเหมือนว่าจะทำงานกับพอร์ต 22 มันเริ่มทำงานให้ฉันเมื่อฉันลบพอร์ต
ราหุล

1
ช่วยฉันที่นั่น @streak
Abram

1
@Yasitha Chinthaka ฉันได้ทำตามทุกขั้นตอน แต่ไม่สามารถเชื่อมต่อกับอินสแตนซ์ของฉันได้ มันเป็นอินสแตนซ์ขนาดใหญ่บนเซิร์ฟเวอร์ Windows 2012 ความช่วยเหลือใด ๆ ที่ชื่นชม ฉันได้เพิ่มกฎขาเข้าสำหรับ SSH ในกลุ่มความปลอดภัยของฉัน มีการกำหนดค่าอื่น ๆ ที่จำเป็นหรือมีการเปลี่ยนแปลงตั้งแต่คุณโพสต์คำตอบนี้ครั้งสุดท้าย?
user2363025

ไม่สามารถเชื่อมต่อในขณะที่คุณได้รับข้อความแสดงข้อผิดพลาดประเภทใด ฉันยังไม่ได้ลองกับเซิร์ฟเวอร์ Windows แต่ควรเป็นขั้นตอนเดียวกัน .. ตรวจสอบให้แน่ใจว่าชื่อผู้ใช้ของคุณถูกต้อง ...
Yasitha Waduge

34

สิ่งนี้ง่ายมากถ้าคุณใช้pem file(ฉันใช้ผู้ใช้ MacOS / windows สามารถทำตามขั้นตอนเดียวกันได้)

  1. เพียงดาวน์โหลดFileZillaของคุณ(ฉันใช้ MacOS - และดาวน์โหลดเวอร์ชันฟรีนั่นก็ดีพอ)

  2. เปิดตัวจัดการไซต์ใน FileZilla (⌘S) -> ไซต์ใหม่

ป้อนคำอธิบายรูปภาพที่นี่

  1. ใส่ชื่อโฮสต์ของคุณในฟิลด์โฮสต์

ตัวอย่าง: eca-**-**-**-111.ap-southwest-9.compute.amazonaws.com

  • เลือก Protocol เป็นSFTP - SSH File Transfer Protocol

  • เลือกประเภทการเข้าสู่ระบบเป็นไฟล์คีย์

  • ใส่ชื่อผู้ใช้ของคุณในช่องผู้ใช้ : สำหรับฉันมันเป็นอูบุนตู ( ค้นหาผู้ใช้ ssh ของคุณ )

บันทึก:

ระบบปฏิบัติการกับชื่อผู้ใช้

Amazon - ผู้ใช้ ec2

Centos - Centos

Debian - ผู้ดูแลระบบหรือรูท

Fedora - ผู้ใช้ ec2

RHEL - ผู้ใช้ ec2 หรือรูท

SUSE - ผู้ใช้ ec2 หรือรูท

Ubuntu - อูบุนตูหรือรูท

  1. สำหรับฟิลด์ไฟล์คีย์เรียกดูไฟล์ pem ของคุณ: และคลิกเชื่อมต่อ

ป้อนคำอธิบายรูปภาพที่นี่

  1. นั่นคือทั้งหมดที่ :) สนุก!

บันทึก:

(จำไว้ว่าให้อนุญาตการเชื่อมต่อ SSH ไปยังที่อยู่ IP ของคุณจาก EC2)หากไม่ใช่คุณจะได้รับข้อความแสดงข้อผิดพลาดในการเชื่อมต่อ!

หมายเหตุ: การอนุญาตให้ IP ของคุณเชื่อมต่ออินสแตนซ์ aws ของคุณผ่าน SFTP

EC2 -> SecurityGroups -> SSH -> กฎขาเข้า -> แก้ไข -> เพิ่มกฎ (SSH | TCP | 22 | IP ของฉัน (มันรับ ip โดยอัตโนมัติ | ชื่อกฎ) -> บันทึก


filezilla เข้ารหัสคีย์ aws บนดิสก์หรือเก็บในข้อความธรรมดา?
red888

ฉันคำนวณคีย์ไฟล์ถูกเข้ารหัสอยู่แล้วดังนั้นมันจะผ่านไฟล์อย่างที่มันเป็น ไม่ได้เข้ารหัส แต่ถ้าคุณใช้การรับรองความถูกต้องปกติโดยใช้ชื่อผู้ใช้และรหัสผ่านกับ Filezilla พวกเขาจะเข้ารหัสรหัสผ่าน
Elshan

นี่ยอดเยี่ยม แต่ต้องการเพิ่มบันทึกย่อ: แทนที่จะใช้ชื่อโฮสต์สาธารณะฉันใช้ที่อยู่ IPv4 IP สำหรับการป้อนข้อมูลโฮสต์ นั่นคือเมื่อมันทำงานให้ฉัน
Bennybear

22

หากใครก็ตามทำตามขั้นตอนทั้งหมดและไม่ประสบความสำเร็จตรวจสอบให้แน่ใจว่าคุณใช้ผู้ใช้ที่ถูกต้อง ฉันพยายามใช้ "ผู้ใช้ ec2" แต่ฉันต้องการใช้ "Ubuntu"


ฉันไม่ประสบความสำเร็จใน RedHat และชื่อผู้ใช้คือ "ผู้ใช้ ec2"
NOTiFY

สำหรับผู้ใช้เวิร์ดเพรสที่มีการใช้ WordPress มากที่สุดที่ได้รับการรับรองโดยการติดตั้ง Bitnami มันอยู่บนเซิร์ฟเวอร์ Ubuntu และดังนั้นชื่อผู้ใช้อูบุนตู :)
Peter Højlund Andersen

20

ตรวจสอบให้แน่ใจว่าคุณใช้พอร์ต 22 Filezilla จะใช้ค่าเริ่มต้นเป็นพอร์ต 21 สำหรับ SFTP


7

บันทึกย่อหนึ่งฉบับสำหรับคำตอบที่ได้รับการยอมรับอย่างดีของ Yasitha Chinthaka:

หมายเหตุ: FileZilla จะระบุว่าจะใช้คีย์ใดโดยอัตโนมัติ คุณไม่จำเป็นต้องระบุคีย์หลังจากนำเข้าดังที่อธิบายไว้ข้างต้น

ในกรณีของฉันฉันมีอีก 5 ppks จากอินสแตนซ์อื่น ๆ ที่ฉันเคยใช้ในอดีต (โดย ppk ของอินสแตนซ์ใหม่อยู่ที่ด้านล่างของรายการนั้น) ฉันเพิ่ม ppk ใหม่ของอินสแตนซ์ใหม่ของฉันและจะไม่ให้ฉันเชื่อมต่อกับมัน ข้อความแสดงข้อผิดพลาด: พยายาม / พยายามหลายครั้งเกินไป

หลังจากที่ฉันลบ ppks ที่ไม่ได้ใช้ในที่สุดฉันก็สามารถเข้าสู่อินสแตนซ์ได้

ดังนั้นไม่ Filezilla ไม่ฉลาด ;-)


1
สิ่งนี้แก้ปัญหาที่ฉันมี ขอบคุณสำหรับการโพสต์!
mnutsch

4

คุณสามารถใช้ไคลเอนต์ FTP ใดก็ได้ ฉันใช้ winscp และใช้งานได้ดี ในลูกค้าเหล่านี้ทั้งหมด คุณสามารถระบุคีย์ความปลอดภัย ssh


4

FileZilla ไม่ทำงานสำหรับฉันฉันยังคงได้รับข้อผิดพลาดนี้:

Disconnected: No supported authentication methods available (server sent: publickey)

งานอะไรคือsftpคำสั่ง

เชื่อมต่อกับ EC2 Instance ด้วย

sftp -i "path/to/key.pem" ec2-user@ec2-54-212-34-84.us-west-2.compute.amazonaws.com

กำลังดาวน์โหลดไฟล์ / dirs

วิธีดาวน์โหลดpath/to/source/file.txtและpath/to/source/dir:

lcd ~/Desktop
cd path/to/source
get file.txt
get -r dir

การอัพโหลดไฟล์ / dirs

ในการอัพโหลด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

Filezilla ยังมี sftp
Elshan

filezilla 3.7ปัญหาเดียวกันกับ เครื่องมือบรรทัดคำสั่ง sftp ก็ใช้ได้สำหรับฉันเช่นกัน
Soheil Pourbafrani

0

คำถามเก่า แต่สิ่งที่ฉันได้พบคือทั้งหมดที่คุณต้องการคือการเพิ่มไฟล์ ppk การตั้งค่า -> การเชื่อมต่อ -> SFTP -> เพิ่มชื่อไฟล์ชื่อผู้ใช้และโฮสต์เหมือนกับสิ่งที่คุณจะให้เมื่อใช้ผงสำหรับอุดรูซึ่งระบุไว้ในhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2- connect-to-instance-linux.html อาจช่วยคนอื่นได้


0

ในกรณีของฉัน Filezilla ส่งไฟล์ AWS ppk ไปยังเซิร์ฟเวอร์ FTP อื่นที่ฉันพยายามเชื่อมต่ออย่างปลอดภัย

มันบ้ามาก มีวิธีแก้ปัญหาตามที่เขียนไว้ด้านล่าง แต่มันน่าเกลียด

มันไม่ทำงานเหมือน @Lucio M ที่ชี้ให้เห็น

จากการสนทนานี้: https://forum.filezilla-project.org/viewtopic.php?t=30605

n0lqu:

ตกลง อย่างไรก็ตามเนื่องจากฉันไม่สามารถควบคุมการทำงานของเซิร์ฟเวอร์ได้มีวิธีระบุภายใน FileZilla หรือไม่ว่าไซต์ควรตรวจสอบสิทธิ์ด้วยรหัสผ่านแทนที่จะใช้รหัสหรือในทางกลับกัน หรือบอกให้ลองใช้รหัสผ่านก่อนจากนั้นป้อนรหัสผ่านเมื่อรหัสผ่านล้มเหลวเท่านั้น ดูเหมือนว่าฉันจะลองใช้คีย์ก่อนแล้วจึงไม่มีโอกาสลองรหัสผ่าน

botg (ผู้ดูแลระบบ Filezilla) ตอบกลับ:

ไม่มีตัวเลือกดังกล่าว

n0lqu:

สามารถเพิ่มตัวเลือกดังกล่าวหรือมีวิธีแก้ไขปัญหาที่ดีที่ใคร ๆ ก็สามารถแนะนำได้? ตอนนี้วิธีแก้ปัญหาเดียวที่ฉันรู้คือการลบคีย์จากค่ากำหนดทั่วไปเพิ่มกลับเฉพาะเมื่อเชื่อมต่อกับไซต์ที่ต้องการแล้วลบอีกครั้งเมื่อดำเนินการเสร็จแล้วจึงไม่ทำให้ไซต์อื่นยุ่ง

botg:

ตอนนี้คุณสามารถมีอินสแตนซ์ FileZilla สองอินสแตนซ์พร้อม dirs config แยกกัน (เช่นหนึ่งติดตั้งและพกพาหนึ่งอัน)

timboskratch:

ฉันเพิ่งมีปัญหาเดียวกันนี้ในวันนี้และจัดการเพื่อแก้ไขได้โดยเปลี่ยน "ประเภทการเข้าสู่ระบบ" ของการเชื่อมต่อโดยใช้รหัสผ่านในการจัดการไซต์ แทนที่จะเป็น "ปกติ" ฉันสามารถเลือก "โต้ตอบ" หรือ "ขอรหัสผ่าน" (ไม่แน่ใจจริงๆว่าต่างกันอย่างไร) จากนั้นเมื่อฉันพยายามเชื่อมต่อกับเว็บไซต์อีกครั้งก็ให้ฉันป้อนรหัสผ่านแล้วเชื่อมต่อ ประสบความสำเร็จ มันไม่เหมาะเพราะหมายความว่าคุณต้องจำและพิมพ์รหัสผ่านใหม่ทุกครั้งที่คุณเชื่อมต่อ แต่ดีกว่าต้องติดตั้ง FileZilla 2 อินสแตนซ์ ฉันเห็นด้วยอย่างยิ่งว่ามันจะมีประโยชน์มากในตัวจัดการไซต์ที่มีตัวเลือกเต็มรูปแบบว่าคุณต้องการให้ FileZilla เชื่อมต่อกับแต่ละไซต์ที่ตั้งค่าไว้ (ไม่ว่าจะใช้รหัสผ่านคีย์ ฯลฯ ) หวังว่านี่จะเป็นประโยชน์! ทิม

ดูเพิ่มเติมที่: https://forum.filezilla-project.org/viewtopic.php?t=34676

ดังนั้นดูเหมือนว่า:

สำหรับไซต์ FTP หลายแห่งที่มีคีย์ / รหัสผ่านให้ใช้การติดตั้ง Filezilla หลายรายการหรือใช้ ppk คีย์เดียวกันสำหรับเซิร์ฟเวอร์ทั้งหมด

ฉันหวังว่าจะมีวิธีที่จะบอก FileZilla ว่า PPK นั้นเป็นไซต์ใดใน Site Manger


0

ง่ายที่สุดและตรงไปตรงมาคือการสร้างการเข้าสู่ระบบ FTP นี่คือไซต์กวดวิชาที่เข้าใจง่ายเล็กน้อยเกี่ยวกับ stackoverflow วิธีการตั้งค่าต่างๆใน 2 นาที ... การตั้งค่า FTP บน Amazon Cloud Server


1
ฉันเชื่อมโยงไปยัง url บน stackoverflow ฉันไม่คิดว่านี่เป็นลิงค์ภายนอกใช่มั้ย
guido _nhcol.com.br_

0

ก่อนอื่น Filezilla คือไคลเอนต์ / เซิร์ฟเวอร์ FTP / SFTP เราจะต้องใช้ลูกค้าเพื่อจุดประสงค์นี้

1) ดาวน์โหลดไคลเอนต์จาก URL: https://filezilla-project.org/

2) ไปที่คอนโซลการจัดการ AWS จากนั้น EC2 เลือกอินสแตนซ์ที่คุณต้องการเข้าถึงจากนั้นคัดลอก DNS หรือที่อยู่ IP ของอินสแตนซ์แล้ววางในชื่อโฮสต์ Filezilla

ติดตามภาพ: Amazon Instance Access ผ่าน FileZilla

3) จากนั้นป้อนชื่อผู้ใช้สำหรับอินสแตนซ์ที่คุณสร้างขึ้นสำหรับ Amazon-ami มันจะเป็นผู้ใช้ ec2 และสำหรับระบบปฏิบัติการอื่น ๆ ก็จะแตกต่างกัน จากนั้นป้อนรหัสผ่านและพอร์ตซึ่งจะเป็น 21 หรือ 22

4) จากนั้นมันจะถามหากุญแจซึ่งอยู่ในรูปแบบ pem เพียงแค่เลือกไฟล์. pem แล้วมันจะยืนยันการตรวจสอบ คลิกที่ใช่แล้วคุณจะทำ

หมายเหตุ: ในกลุ่ม EC2 Security ของคุณอนุญาตหมายเลขพอร์ต 21 และ 22 แล้วแต่จำนวนใดจะต้องใช้สำหรับการเข้าถึง FTP


0

สิ่งที่คุณต้องทำคือ: 1. เปิดตัวจัดการไซต์บน filezilla 2. เพิ่มไซต์ใหม่ 3. ให้ที่อยู่โฮสต์และพอร์ตถ้าพอร์ตไม่ใช่พอร์ตเริ่มต้น 4. ประเภทการสื่อสาร: SFTP 5. ไฟล์คีย์ประเภทเซสชัน 6. ใส่ชื่อผู้ใช้ 7 เลือกไดเรกทอรีไฟล์สำคัญ แต่ระวังใน windows file explorer ค้นหาไฟล์ ppk เป็นค่าเริ่มต้นเลือกไฟล์ทั้งหมดที่ดรอปดาวน์จากนั้นเลือกไฟล์ pem ของคุณและคุณก็พร้อมใช้งาน

เนื่องจากคุณเพิ่มไซต์ใหม่และกำหนดค่าในครั้งต่อไปเมื่อคุณต้องการเชื่อมต่อเพียงแค่เลือกไซต์ที่บันทึกไว้และเชื่อมต่อ อย่างนั้นแหละ.


-5

https://www.cloudjojo.com/how-to-connect-ec2-machine-with-ftp/

  1. ก่อนอื่นคุณต้องติดตั้งเซิร์ฟเวอร์ ftp บนเครื่อง ec2 เช่น vsftpd
  2. กำหนดค่าไฟล์ vsftpd เพื่ออนุญาตการเขียนและเปิดพอร์ต
  3. สร้างผู้ใช้สำหรับไคลเอนต์ ftp
  4. เชื่อมต่อกับไคลเอนต์ ftp เช่น filezilla

ตรวจสอบให้แน่ใจว่าคุณเปิดพอร์ต 21 บนกลุ่มความปลอดภัย aws

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.