Amazon EC2 - ไม่มี SSH หลังจากรีบูตการเชื่อมต่อถูกปฏิเสธ


17

ฉันทำซ้ำสองหรือสามครั้งดังนั้นฉันเดาว่ามีบางอย่างผิดปกติกับสิ่งที่ฉันทำ

นี่คือขั้นตอนของฉัน:

  1. เปิดตัวอินสแตนซ์ใหม่ผ่านทางคอนโซลการจัดการ EC2 โดยใช้: เซิร์ฟเวอร์ Ubuntu 13.10 - ami-ace67f9c (64 บิต)
  2. เรียกใช้ด้วยค่าเริ่มต้น (ใช้คู่คีย์ที่มีอยู่ของฉัน)
  3. อินสแตนซ์เริ่มต้น ฉันสามารถใช้ SSH กับ Putty หรือเทอร์มินัล Mac ได้ ที่ประสบความสำเร็จ!
  4. ฉันรีบูตอินสแตนซ์
  5. 10 นาทีต่อมาเมื่ออินสแตนซ์ควรจะสำรองและทำงานการเชื่อมต่อเทอร์มินัลของฉันจะแสดง:

    stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem ubuntu@54.201.200.208
    OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
    debug1: Reading configuration data /etc/ssh_config
    debug1: Applying options for *
    debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
    debug1: connect to address 54.201.200.208 port 22: Connection refused
    ssh: connect to host 54.201.200.208 port 22: Connection refused
    stead:~ stead$
    

ไม่เป็นไรฉันเข้าใจว่าที่อยู่ IP สาธารณะสามารถเปลี่ยนแปลงได้ดังนั้นการตรวจสอบคอนโซลการจัดการ EC2 ฉันยืนยันว่าเหมือนกัน แปลก. เพื่อความสนุกฉันลองเชื่อมต่อกับชื่อโฮสต์ DNS สาธารณะ: ec2-54-201-200-208.us-west-2.compute.amazonaws.com ไม่มีลูกเต๋าผลลัพธ์เดียวกัน

แม้จะใช้การเชื่อมต่อผ่านไคลเอนต์ Java SSH ที่ติดตั้งอยู่ในคอนโซล EC2 แต่ฉันได้รับการเชื่อมต่อที่ถูกปฏิเสธ

ฉันตรวจสอบกลุ่มความปลอดภัย อินสแตนซ์นี้อยู่ในกลุ่ม launch-wizard-4 ดูที่การกำหนดค่าขาเข้าสำหรับกลุ่มนี้อนุญาตให้ใช้พอร์ต 22 จาก 0.0.0.0/0 ดังนั้นควรจะอยู่ที่ใดก็ได้ ฉันรู้ว่าฉันกดปุ่มอินสแตนซ์ของฉันและนี่คือกลุ่มความปลอดภัยที่เหมาะสมเพราะฉันไม่สามารถ ping อินสแตนซ์ได้ ถ้าฉันเปิดใช้งาน ICMP สำหรับกลุ่มความปลอดภัยนี้ทันใดนั้นส่ง Ping ทั้งหมดของฉันผ่านไป

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

ฉันเดาว่ามีขั้นตอน EC2 ง่าย ๆ ที่ฉันพลาดไป ขอบคุณสำหรับความช่วยเหลือใด ๆ ที่คุณสามารถให้และฉันยินดีที่จะให้ข้อมูลเพิ่มเติมหรือทดสอบเพิ่มเติม!

อัปเดต - นี่คือบันทึกระบบของฉันจากคอนโซล Amazon EC2: http://pastebin.com/4M5pwGRt


2
ฉันขอแนะนำให้ดูที่บันทึกของระบบบนคอนโซล AWS เพื่อดูว่ามีบางอย่างไม่ทำงานในระหว่างการรีบูตเครื่องคุณอาจต้องแน่ใจว่าทั้งการเข้าถึงการตรวจสอบผ่านเมื่อรีบูตระบบและเมื่อคุณพยายาม ssh (บนคอนโซล เท่านั้น)
APZ

2
คุณไม่ได้ทำอะไรหลังจากการเชื่อมต่อครั้งแรก? ไม่ยุ่งกับตาราง IP หรือไฟล์ config sshd? เนื่องจากดูเหมือนว่าคุณกำลังทิ้งการเชื่อมต่อไม่ใช่พอร์ต 22 ที่ไม่พร้อมใช้งาน
typositoire

คุณยุ่งกับ/etc/fstabก่อนรีบูตเครื่องหรือไม่?
David Levesque

ไม่มีการเปลี่ยนแปลง iptables หรือ fstab ก่อนที่จะรีบูตเครื่อง คำสั่งแรกที่ฉันรันคือ "รีบูตตอนนี้" ฉันจะอัปเดตข้างต้นด้วยบันทึกระบบ AWS ของฉัน
SteadH

นอกจากนี้การตรวจสอบสถานะยังดีอยู่ - 2/2! ฉันหวังว่าฉันจะมีบางอย่างผิดปกติกับการตั้งค่าของฉัน ... อาจจะไม่!
SteadH

คำตอบ:


6

มีพฤติกรรมที่คล้ายคลึงกันในวันนี้บนอินสแตนซ์ของฉัน ec2 และติดตามสิ่งนี้: เมื่อฉันทำ sudo reboot now เครื่องแฮงค์และฉันต้องรีสตาร์ทด้วยตนเองจากคอนโซลการจัดการ aws เมื่อฉัน sudo reboot รีบูตได้ดี เห็นได้ชัดว่า "ตอนนี้" ไม่ใช่ตัวเลือกที่ถูกต้องสำหรับการรีบูทตามที่ระบุไว้ที่นี่/ubuntu/397502/reboot-a-server-from-command-line

ความคิด?


! น่ากลัว ฉันลองสิ่งนี้ในอินสแตนซ์ของฉันวันนี้และใช้งานได้ ขอขอบคุณ!
SteadH

นอกจากนี้ลิงก์นั้นก็ตลกเพราะฉันเคยใช้ sudo reboot ตอนนี้เป็นวิธี Ubuntu Server ของฉันรีสตาร์ท แปลก!
SteadH

@ oromoiluig วิธีสามารถรีบูตถ้าไม่สามารถ ssh เครื่อง?
Vaibhav Kumar

1
@VaibhavKumar จากคอนโซล AWS: ปิดอินสแตนซ์แล้วเปิดใหม่อีกครั้ง
oromoiluig

17

จากโพสต์ฟอรัม AWS Developer ในหัวข้อนี้ :

ลองหยุดอินสแตนซ์ที่ใช้งานไม่ได้การถอดไดรฟ์ข้อมูล EBS และแนบเป็นโวลุ่มสำรองไปยังอินสแตนซ์อื่น เมื่อคุณติดตั้งวอลลุ่มเสียที่อื่นบนอินสแตนซ์อื่นให้ตรวจสอบไฟล์ / etc / sshd_config (ใกล้กับด้านล่าง) ฉันมีอินสแตนซ์ RHEL สองสามตัวที่ Yum scrogged sshd_config แทรกบรรทัดที่ซ้ำกันที่ด้านล่างซึ่งทำให้ sshd ล้มเหลวในการเริ่มต้นเนื่องจากข้อผิดพลาดทางไวยากรณ์

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

มาแยกกันด้วยการเชื่อมโยงไปยังเอกสาร AWS:

  1. หยุดอินสแตนซ์ที่ใช้งานไม่ได้และแยกโวลุ่ม EBS (root) โดยเข้าไปที่ EC2 Management Console คลิกที่ "Elastic Block Store"> "Volumes" การคลิกขวาบนไดรฟ์ที่เกี่ยวข้องกับอินสแตนซ์ที่คุณหยุด
  2. เริ่มต้นอินสแตนซ์ใหม่ในภูมิภาคเดียวกันและระบบปฏิบัติการเดียวกับอินสแตนซ์ที่ใช้งานไม่ได้แล้วแนบเดิมปริมาณราก EBS เป็นปริมาณรองตัวอย่างใหม่ของคุณ คำสั่งในขั้นตอนที่ 4 ด้านล่างถือว่าคุณเพิ่มระดับเสียงไปยังโฟลเดอร์ที่เรียกว่า "data"
  3. เมื่อคุณได้ ติดตั้งที่ใดที่หนึ่งปริมาณเสียในกรณีอื่น ๆ ,
  4. ตรวจสอบไฟล์ "/ etc / sshd_config" สำหรับรายการที่ซ้ำกันโดยออกคำสั่งเหล่านี้:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v หลายครั้งเพื่อไปที่ด้านล่างของไฟล์
    • ctrl-k บรรทัดทั้งหมดที่ด้านล่างกล่าวถึง "PermitRootLogin โดยไม่มีรหัสผ่าน" และ "UseDNS no"
    • ctrl-xและYเพื่อบันทึกและออกจากไฟล์ที่แก้ไข
  5. @Tegegard ชี้ให้เห็น (ในความคิดเห็นของเขา)ว่าเราได้แก้ไขอาการเท่านั้น เราสามารถแก้ไขสาเหตุได้โดยใส่ความคิดเห็น 3 บรรทัดที่เกี่ยวข้องในไฟล์ "/etc/rc.local" ดังนั้น:
    • cd /etc
    • sudo nano rc.local
    • ค้นหาบรรทัด "PermitRootLogin ... " และลบออก
    • ctrl-xและYเพื่อบันทึกและออกจากไฟล์ที่แก้ไข
  6. เมื่อคุณแก้ไขมันเพียงแค่เลิกเมานท์ไดรฟ์ ,
  7. ถอดออกโดยเข้าไปที่คอนโซลการจัดการ EC2 คลิกที่ "ร้านค้าบล็อกยืดหยุ่น"> "ปริมาณ" คลิกขวาที่ปริมาณที่เกี่ยวข้องกับอินสแตนซ์ที่คุณหยุด
  8. ติดตั้งอินสแตนซ์อื่นของคุณและ
  9. ไฟมันกลับขึ้นมาอีกครั้ง

คำถามนี้อาจเกี่ยวข้องด้วย: serverfault.com/q/325140/153062
Jeromy French

ปัญหาเดียวกันและการแก้ไขที่เสนอที่คล้ายกันที่stackoverflow.com/a/21563478/1430996ความคิดเห็นมีประโยชน์อย่างยิ่ง
Jeromy French

ขอบคุณสำหรับสิ่งนี้! ฉันสงสัยว่าสิ่งนี้จะแก้ไขปัญหาได้และนั่นเป็นวิธีที่ดีในการรับบันทึก SSH นั้น ขอบคุณ!
SteadH

มันใช้งานได้ดีขอบคุณ แม้ว่าปัญหาของฉัน (อาการเดียวกัน: "การเชื่อมต่อถูกปฏิเสธ") เป็นเพราะเจ้าของผิด dir / var / empty / sshd มันควรจะเป็นรูท: รูท ทำไมมันถึงเปลี่ยน: ไม่มีความคิดเราไม่เคยแม้แต่จะปิดมัน โอ้ดี
cucu8

@ JeromyFrench ฉันมีปัญหาเดียวกัน ฉันทำตามขั้นตอนแล้ว แต่ไม่ได้รับ '"PermitRootLogin ไม่มีรหัสผ่าน"' มันมี "PermitRootLogin = ห้ามรหัสผ่าน" ฉันควรทำอย่างไรดี?
Vaibhav Kumar

0

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

อีกสิ่งหนึ่งที่ควรตรวจสอบคือต้องแน่ใจว่าอินสแตนซ์นั้นตอบสนองต่อ IP ดูเหมือนว่าคุณจะได้รับการเชื่อมต่อที่ถูกปฏิเสธด้านบนซึ่งดูเหมือนว่าอินสแตนซ์นั้นหมด แต่ SSH ไม่ทำงานหรือถูกไฟร์วอลล์ แต่ต้องแน่ใจว่าอินสแตนซ์นั้นรีบูตเต็มแล้ว

คุณสามารถลองเปิดพอร์ตทั้งหมดจากระบบทดสอบและดูว่า 'nmap' แสดงอะไร - บริการอื่น ๆ ที่ตอบสนองบนอินสแตนซ์นั้น


-1

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


-2

ฉันได้รับปัญหานี้หลังจากทำsudo reboot nowผ่าน SSH บนเซิร์ฟเวอร์ EC2 ที่ใช้ Ubuntu 14.04 ทำงานได้ดีหลังจากรีบูตอีกครั้งโดยใช้คอนโซลการจัดการ EC2


-2

ในกรณีของฉันฉันจะตั้งค่ากลุ่มรักษาความปลอดภัยเพื่ออนุญาตการเชื่อมต่อพอร์ต 22 จาก IP ของฉันเท่านั้น ไม่กี่วันต่อมา ISP ของฉันเปลี่ยนที่อยู่ IP ของฉันดังนั้นกลุ่มความปลอดภัยจำเป็นต้องได้รับการอัปเดต


-2

ฉันมีปัญหาที่คล้ายกันอินสแตนซ์ EC2 Amazon Linux ของฉันไม่สามารถเข้าถึงได้อีกต่อไปหลังจากเรียกใช้sudo rebootรีบูต

ไม่มีการเข้าถึง SSH คำสั่งหยุด / เริ่ม / รีบูตจากคอนโซลผู้ดูแลระบบของอเมซอนให้ฉันด้วยเช่นกัน

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

หวังว่ามันจะช่วย;)


-2

ฉันมีปัญหาเดียวกันหลังจากใช้วานิลลา sudo rebootคำสั่งฉันพบว่าฉันสามารถแก้ไขปัญหานี้ได้ด้วยการหยุด (ไม่รีบูท) AMI ของฉันโดยใช้คอนโซล AWS จากนั้นเริ่มการสำรองอีกครั้ง

ไม่ว่าด้วยเหตุผลใดก็ตามการรีสตาร์ท AMI จากคอนโซล AWS เช่นเดียวกับการคลิกการดำเนินการรีสตาร์ทแทนการหยุดแล้วเริ่มอินสแตนซ์ไม่ได้ช่วยแก้ปัญหา


-3

ดังที่กล่าวไว้คุณอาจยุ่งกับ / etc / fstab /

ฉันมีปัญหานี้ ก่อนอื่นคุณต้องเพิ่มระดับเสียงที่ / dev / sda1 อีกครั้งตามที่ข้อความเตือนบอก

จากนั้นฉันก็ไม่สามารถ ssh ฉันรู้ว่าฉันต้องเพิ่มวอลลุ่มอื่นที่ฉันสร้างและแก้ไขปัญหา ssh

จากนั้นคุณสามารถเข้าสู่ระบบและแก้ไข fstab กลับไปเป็นต้นฉบับ


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