ฉันต้องการเข้าถึง SSH อินสแตนซ์ Amazon EC2 ที่ใช้ Ubuntu 10.4 ทั้งหมดที่ฉันมีคือชื่อผู้ใช้และรหัสผ่านของ Amazon ความคิดใด ๆ ?
ฉันต้องการเข้าถึง SSH อินสแตนซ์ Amazon EC2 ที่ใช้ Ubuntu 10.4 ทั้งหมดที่ฉันมีคือชื่อผู้ใช้และรหัสผ่านของ Amazon ความคิดใด ๆ ?
คำตอบ:
โดยทั่วไปคุณต้องมีไฟล์คีย์ส่วนตัวเพื่อเข้าสู่ระบบ EC2 ของคุณผ่าน SSH ทำตามขั้นตอนเหล่านี้เพื่อสร้าง:
ssh -i /path/to/private-key root@<ec2-public-dns-address>
- มีการหลีกเลี่ยงชื่อผู้ใช้ root ในรุ่นล่าสุดโดยพิจารณาจากการแจกจ่ายที่คุณเลือกec2-user
หรือubuntu
เป็นชื่อผู้ใช้ของคุณubuntu
เข้าสู่ระบบแทนroot
. เห็นได้ชัดว่าฉันมีอินสแตนซ์เซิร์ฟเวอร์ ubuntu 12.04
ec2-user
หรืออาจจะแต่ไม่ubuntu
root
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>
เพียงแค่ใช้ubuntu
แทนroot
. ปัญหาของคุณจะได้รับการแก้ไข ไชโย!
ขั้นตอนที่ 1) ดาวน์โหลดคีย์ส่วนตัวที่กำหนดให้กับเครื่อง ec2 ของคุณ (ซึ่งจะดาวน์โหลดเพียงครั้งเดียวเมื่อสร้างขึ้นดังนั้นขอแนะนำให้กระทำที่ใดที่หนึ่ง)
ขั้นตอนที่ 2) และเริ่มคำสั่งต่อไปนี้
chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
เอกสารอย่างเป็นทางการ : การเชื่อมต่อกับอินสแตนซ์ Linux / Unix ของคุณโดยใช้ SSH
หมายเหตุผู้ใช้ปัจจุบันสำหรับ 13.04 คือ "ubuntu" ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com
คุณต้องสร้างคู่คีย์ก่อน - โดยใช้คอนโซล EC2 ของคุณ จากนั้นใช้คีย์ส่วนตัวของคุณเพื่อ SSH ในเซิร์ฟเวอร์ (ชื่อผู้ใช้คือec2-user
) โดยใช้ไคลเอนต์ SSH ที่คุณเลือก
เมื่อเข้ามาแล้วคุณสามารถออก a sudo su -
เพื่อรับรูทได้หากต้องการ (หมายเหตุ: คุณไม่สามารถเข้าสู่ระบบในฐานะรูทโดยตรง)
หากคุณใช้ MacOS คุณควรสร้าง / แก้ไขไฟล์กำหนดค่า SSH (~ / .ssh / config) และใส่สิ่งที่ต้องการ:
Host *.amazonaws.com
User ubuntu
Port 22
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem
จากนั้นเพื่อเชื่อมต่อกับอินสแตนซ์ EC2 ใด ๆ :
ssh MYNAME.amazonaws.com
ไม่มีอะไรมาก!
ในการตั้งค่า Ubuntu บน AWS โปรดทำตามขั้นตอนต่อไปนี้:
ในการเข้าถึงอินสแตนซ์ผ่าน SSH ให้รัน:
เชื่อมต่อกับกล่อง Linux โดยระบุไฟล์ PEM ของคุณเช่น
ssh -i "file.pem" ubuntu@x.x.x.x
ตรวจสอบว่าไฟล์ PEM ของคุณมีสิทธิ์ 600 ( chmod 600 file.pem
)
หากคุณกำลังใช้อินสแตนซ์ VPC และกลุ่มรักษาความปลอดภัยของคุณถูกต้อง (ตามกฎระเบียบทางด้านขวา) และมันก็ยังคงไม่ได้ทำงานในVPCส่วนการตรวจสอบเครือข่ายย่อยของคุณที่ควรจะแนบมากับคุณVPC (ทั้งที่ใช้โดยอินสแตนซ์ของคุณ) และการติดตั้ง กฎใหม่ในตารางเส้นทางที่มี0.0.0.0/0
เป็นปลายทางของคุณและอินเทอร์เน็ตเกตเวย์เป็นเป้าหมาย
สำหรับรายละเอียดเพิ่มเติมตรวจสอบ: การแก้ไขปัญหาการเชื่อมต่อกับอินสแตนซ์ของคุณ
ดูเพิ่มเติม: สาเหตุที่เป็นไปได้สำหรับการหมดเวลาเมื่อพยายามเข้าถึงอินสแตนซ์ EC2
1) เป็นครั้งแรกสำหรับการ จำกัด การอนุญาตไฟล์ดังต่อไปนี้chmod
.pem file
chmod 400 my-key-pair.pem
2) จากนั้น
ssh
ใช้คำสั่งต่อไปนี้โดยตรงจาก.ssh
โฟลเดอร์
ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com
หมายเหตุ: - เพื่อไปยัง.ssh
โฟลเดอร์ กดครั้งแรกCtrl + H
เพื่อแสดงไฟล์ที่ซ่อนอยู่ทั้งหมดและสุดท้ายcd .ssh
การไม่เข้าสู่ระบบในฐานะผู้ใช้ที่ถูกต้องสำหรับ OS Distro ของคุณอาจเป็นปัญหาได้ สำหรับ AMI ใหม่บางชื่อผู้ใช้อาจไม่ใช่ "ubuntu" แต่เป็น "ec2-user" ตัวอย่างเช่นสำหรับ Amazon Linux ฉันเชื่อว่าผู้ใช้คือ "ผู้ใช้ ec2" Eric Hammond ยกตัวอย่างที่นี่: http://alestic.com/2014/01/ec2-ssh-username
ข้อเสนอแนะของฉันลอง:
ssh -i /path/to/file.pem ec2-user@ec2...
ssh -i /path/to/file.pem ubuntu@ec2...
ssh -i /path/to/file.pem root@ec2...
หากคุณมี AMI ที่ไม่ถูกต้องคุณอาจต้องการรีสตาร์ทเครื่องทั้งหมดเพื่อให้คุณมีความสม่ำเสมอระหว่างคลัสเตอร์ของคุณ ถ้านี่คือปัญหาของคุณคุณอาจต้องการ OS Distro เดียวกันอย่างน้อยสำหรับกล่อง linux ของคุณ
การทำตามคำแนะนำในคำตอบทั้งหมดนี้ไม่เพียงพอ ในแต่ละอินสแตนซ์คุณจะเห็นกลุ่มความปลอดภัย เมื่อคุณเปิดอินสแตนซ์ใหม่คุณจะตั้งค่านี้เป็นค่าเริ่มต้น คุณต้องแก้ไขกลุ่มความปลอดภัยและเพิ่มพอร์ต ssh ในภายหลังคุณต้องเพิ่มพอร์ต 8080, 8443, 80, 443 เมื่อคุณต้องการโฮสต์เว็บไซต์ของคุณ
ฉันยอมรับข้อเสนอของ AWS เพื่อใช้กลุ่มความปลอดภัยเริ่มต้นซึ่งรวมพอร์ต 'All Trafic'
และหลังจากพยายามเชื่อมต่อกับอินสแตนซ์ ec2 ใหม่ของฉันหลายต่อหลายครั้งฉันเพิ่งรู้ว่าควรแก้ไขกลุ่มความปลอดภัยที่ใช้แล้วและเพิ่มพอร์ต 22 (ssh) ขาเข้าและขาออกด้วยตนเอง!
หวังว่าจะช่วยได้!
ครั้งแรกเปลี่ยนสิทธิ์ของไฟล์ pem โดย
chmod 400 path/to/key_pair.pem
ภายในไฟล์ ~ / .ssh / config ให้เพิ่มบรรทัดต่อไปนี้ที่ด้านบนของไฟล์
Host AWS
Hostname myserver.com
User myuser
IdentityFile path/to/.pem/file
port 22
ชื่อโฮสต์ใช้ IP หรือลิงก์ของเซิร์ฟเวอร์ผู้ใช้ใช้ชื่อผู้ใช้ของเซิร์ฟเวอร์และไฟล์ Identity ถูกดาวน์โหลดจาก AWS เมื่อคุณสร้างอินสแตนซ์ เพียงเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
ssh AWS
และสนุกกับมัน!
หมายเหตุ : เพื่อไปยัง.ssh
โฟลเดอร์ ขั้นแรกให้กดCtrl + H
ในโฮมโฟลเดอร์เพื่อแสดงไฟล์ที่ซ่อนอยู่ทั้งหมดและสุดท้ายcd .ssh
ตรวจสอบสิ่งเหล่านี้ให้ดี
คีย์ส่วนตัวต้องได้รับอนุญาต 400
ตรวจสอบให้แน่ใจว่าพอร์ต 22 เปิดอยู่สำหรับอินสแตนซ์ AWS ที่คุณพยายามเข้าถึง
ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX
// XXX.XXX.XXX.XXX = ip สาธารณะของอินสแตนซ์ของคุณ