ฉันสร้าง AWS EC2 อินสแตนซ์และฉันต้องการที่จะสามารถอัปโหลดไฟล์ไปยังไดเรกทอรีเซิร์ฟเวอร์โดยใช้ FileZilla ในแบบที่ง่ายที่สุดและตรงไปตรงมาที่สุด
ฉันสร้าง AWS EC2 อินสแตนซ์และฉันต้องการที่จะสามารถอัปโหลดไฟล์ไปยังไดเรกทอรีเซิร์ฟเวอร์โดยใช้ FileZilla ในแบบที่ง่ายที่สุดและตรงไปตรงมาที่สุด
คำตอบ:
ฉันได้สร้างวิดีโอการสอนสำหรับเรื่องนี้ เพียงตรวจสอบ:
เชื่อมต่อกับไดเรกทอรีไฟล์ Amazon EC2 โดยใช้ FileZilla และ SFTP, วิดีโอการสอน
บทสรุปของวิดีโอสอนด้านบน:
ไฟล์> ตัวจัดการไซต์เพิ่มไซต์ใหม่ด้วยพารามิเตอร์ต่อไปนี้:
โฮสต์ : ชื่อ DNS สาธารณะของคุณของอินสแตนซ์ EC2 ของคุณหรือที่อยู่ IP สาธารณะของเซิร์ฟเวอร์
โปรโตคอล : SFTP
ประเภทการเข้าสู่ระบบ : ปกติ
ผู้ใช้ : จากเอกสาร : "สำหรับ Amazon Linux ชื่อผู้ใช้เริ่มต้นคือผู้ใช้ec2สำหรับ RHEL5 ชื่อผู้ใช้มักจะเป็นรูท แต่อาจเป็นผู้ใช้ ec2 สำหรับ Ubuntu ชื่อผู้ใช้คืออูบุนตูสำหรับ SUSE Linux ชื่อผู้ใช้คือรูทสำหรับ Debian ชื่อผู้ใช้คือผู้ดูแลระบบมิฉะนั้นตรวจสอบกับผู้ให้บริการ AMI ของคุณ "
กดปุ่มเชื่อมต่อ - หากการบันทึกรหัสผ่านถูกปิดใช้งานคุณจะได้รับแจ้งว่าประเภทการเข้าสู่ระบบจะเปลี่ยนเป็น 'ขอรหัสผ่าน' พูดว่า 'ตกลง' และเมื่อเชื่อมต่อที่พรอมต์รหัสผ่านให้กด 'ตกลง' โดยไม่ต้องป้อนรหัสผ่านเพื่อดำเนินการผ่านกล่องโต้ตอบ
หมายเหตุ: FileZilla จะระบุว่าจะใช้คีย์ใดโดยอัตโนมัติ คุณไม่จำเป็นต้องระบุคีย์หลังจากนำเข้าดังที่อธิบายไว้ข้างต้น
ตรวจสอบโพสต์นี้ถ้าคุณมีปัญหาสิทธิ์ใด ๆ
สิ่งนี้ง่ายมากถ้าคุณใช้pem file
(ฉันใช้ผู้ใช้ MacOS / windows สามารถทำตามขั้นตอนเดียวกันได้)
เพียงดาวน์โหลดFileZillaของคุณ(ฉันใช้ MacOS - และดาวน์โหลดเวอร์ชันฟรีนั่นก็ดีพอ)
เปิดตัวจัดการไซต์ใน FileZilla (⌘S) -> ไซต์ใหม่
ตัวอย่าง:
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 - อูบุนตูหรือรูท
บันทึก:
(จำไว้ว่าให้อนุญาตการเชื่อมต่อ SSH ไปยังที่อยู่ IP ของคุณจาก EC2)หากไม่ใช่คุณจะได้รับข้อความแสดงข้อผิดพลาดในการเชื่อมต่อ!
หมายเหตุ: การอนุญาตให้ IP ของคุณเชื่อมต่ออินสแตนซ์ aws ของคุณผ่าน SFTP
EC2 -> SecurityGroups -> SSH -> กฎขาเข้า -> แก้ไข -> เพิ่มกฎ (SSH | TCP | 22 | IP ของฉัน (มันรับ ip โดยอัตโนมัติ | ชื่อกฎ) -> บันทึก
หากใครก็ตามทำตามขั้นตอนทั้งหมดและไม่ประสบความสำเร็จตรวจสอบให้แน่ใจว่าคุณใช้ผู้ใช้ที่ถูกต้อง ฉันพยายามใช้ "ผู้ใช้ ec2" แต่ฉันต้องการใช้ "Ubuntu"
ตรวจสอบให้แน่ใจว่าคุณใช้พอร์ต 22 Filezilla จะใช้ค่าเริ่มต้นเป็นพอร์ต 21 สำหรับ SFTP
บันทึกย่อหนึ่งฉบับสำหรับคำตอบที่ได้รับการยอมรับอย่างดีของ Yasitha Chinthaka:
หมายเหตุ: FileZilla จะระบุว่าจะใช้คีย์ใดโดยอัตโนมัติ คุณไม่จำเป็นต้องระบุคีย์หลังจากนำเข้าดังที่อธิบายไว้ข้างต้น
ในกรณีของฉันฉันมีอีก 5 ppks จากอินสแตนซ์อื่น ๆ ที่ฉันเคยใช้ในอดีต (โดย ppk ของอินสแตนซ์ใหม่อยู่ที่ด้านล่างของรายการนั้น) ฉันเพิ่ม ppk ใหม่ของอินสแตนซ์ใหม่ของฉันและจะไม่ให้ฉันเชื่อมต่อกับมัน ข้อความแสดงข้อผิดพลาด: พยายาม / พยายามหลายครั้งเกินไป
หลังจากที่ฉันลบ ppks ที่ไม่ได้ใช้ในที่สุดฉันก็สามารถเข้าสู่อินสแตนซ์ได้
ดังนั้นไม่ Filezilla ไม่ฉลาด ;-)
คุณสามารถใช้ไคลเอนต์ FTP ใดก็ได้ ฉันใช้ winscp และใช้งานได้ดี ในลูกค้าเหล่านี้ทั้งหมด คุณสามารถระบุคีย์ความปลอดภัย ssh
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
วิธีดาวน์โหลดpath/to/source/file.txt
และpath/to/source/dir
:
lcd ~/Desktop
cd path/to/source
get file.txt
get -r dir
ในการอัพโหลด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 3.7
ปัญหาเดียวกันกับ เครื่องมือบรรทัดคำสั่ง sftp ก็ใช้ได้สำหรับฉันเช่นกัน
คำถามเก่า แต่สิ่งที่ฉันได้พบคือทั้งหมดที่คุณต้องการคือการเพิ่มไฟล์ ppk การตั้งค่า -> การเชื่อมต่อ -> SFTP -> เพิ่มชื่อไฟล์ชื่อผู้ใช้และโฮสต์เหมือนกับสิ่งที่คุณจะให้เมื่อใช้ผงสำหรับอุดรูซึ่งระบุไว้ในhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2- connect-to-instance-linux.html อาจช่วยคนอื่นได้
ในกรณีของฉัน 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
ง่ายที่สุดและตรงไปตรงมาคือการสร้างการเข้าสู่ระบบ FTP นี่คือไซต์กวดวิชาที่เข้าใจง่ายเล็กน้อยเกี่ยวกับ stackoverflow วิธีการตั้งค่าต่างๆใน 2 นาที ... การตั้งค่า FTP บน Amazon Cloud Server
ก่อนอื่น 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
สิ่งที่คุณต้องทำคือ: 1. เปิดตัวจัดการไซต์บน filezilla 2. เพิ่มไซต์ใหม่ 3. ให้ที่อยู่โฮสต์และพอร์ตถ้าพอร์ตไม่ใช่พอร์ตเริ่มต้น 4. ประเภทการสื่อสาร: SFTP 5. ไฟล์คีย์ประเภทเซสชัน 6. ใส่ชื่อผู้ใช้ 7 เลือกไดเรกทอรีไฟล์สำคัญ แต่ระวังใน windows file explorer ค้นหาไฟล์ ppk เป็นค่าเริ่มต้นเลือกไฟล์ทั้งหมดที่ดรอปดาวน์จากนั้นเลือกไฟล์ pem ของคุณและคุณก็พร้อมใช้งาน
เนื่องจากคุณเพิ่มไซต์ใหม่และกำหนดค่าในครั้งต่อไปเมื่อคุณต้องการเชื่อมต่อเพียงแค่เลือกไซต์ที่บันทึกไว้และเชื่อมต่อ อย่างนั้นแหละ.
https://www.cloudjojo.com/how-to-connect-ec2-machine-with-ftp/
ตรวจสอบให้แน่ใจว่าคุณเปิดพอร์ต 21 บนกลุ่มความปลอดภัย aws