รีสตาร์ท SSH บนเครื่องที่ SSH เป็นโหมดการเข้าถึงเท่านั้น


29

ฉันได้ทำการเปลี่ยนแปลงบางอย่างกับไฟล์ sshd_config แล้วจึงต้องเริ่มใหม่ ฉันกำลังมองหาเคล็ดลับในการรีสตาร์ทอย่างปลอดภัย ssh เมื่อได้รับการเข้าถึงทางกายภาพไปยังเซิร์ฟเวอร์จะเป็น Huga PITA

คำตอบ:


42

การรีสตาร์ท sshd ในขณะที่ล็อกอินผ่าน ssh จะไม่ยกเลิกการเชื่อมต่อ ssh ของคุณ

หากคุณกังวลเกี่ยวกับการกำหนดค่าของคุณให้เข้าสู่ระบบสองสามครั้งผ่าน ssh แล้วเริ่มต้นใหม่ หากคุณไม่สามารถเชื่อมต่อกับการเชื่อมต่อใหม่ตอนนี้คุณสามารถเข้าถึงเพื่อแก้ไขปัญหาได้แล้ว

พูดถึงด้านล่างในความคิดเห็นโดย @Milan Babuškov: sshd -tจะทดสอบการกำหนดค่าของคุณสำหรับความถูกต้องของไวยากรณ์หากคุณต้องการให้แน่ใจ

ข้อเสนอแนะอื่นโดย @Ronald Pottol คือการตั้งค่าcronงานเพื่อรีสตาร์ทเซิร์ฟเวอร์ด้วยการกำหนดค่าการทำงานที่รู้จัก บางทีอาจ overkill แต่ถ้าคุณกำลังอัพเดทเซิร์ฟเวอร์ที่มีความสำคัญต่อภารกิจ ฯลฯ ... บางครั้งคุณก็ไม่อาจระวังตัวได้


นั่นเป็นเรื่องง่ายที่ทำให้รู้สึกเกินไป ขอบคุณสำหรับการตอบกลับอย่างรวดเร็วจริงๆ FYI การเปลี่ยนแปลงที่ฉันทำงานได้ดี;)
มิทช์


6

หากคุณมีการเข้าถึงฮาร์ดแวร์คุณอาจพิจารณาวางเทอร์มินัลในพอร์ตอนุกรม / dev / ttyS0 จากนั้นคุณสามารถมีประตูหลังเข้าไปในเซิร์ฟเวอร์ของคุณ

เพียงเพิ่ม

SO:2345:respawn:/sbin/mingetty ttySO

เพื่อ / etc / inittab ของคุณและเทอร์มินัลจะวางไข่บนพอร์ตอนุกรมของคุณ คุณสามารถใช้ตัวรวบรวมพอร์ตอนุกรมหรือใช้โมเด็มที่มีค่าเป็นโมฆะจากเซิร์ฟเวอร์ถัดจากนั้น


เย็น! นี่เป็นมาตรฐานที่ค่อนข้างดีใช่ไหม
มิทช์

3
ค่อนข้างมาตรฐานตราบใดที่คุณมีวิธีเชื่อมต่อกับเครื่องนั่นคือเซิร์ฟเวอร์เทอร์มินัลอนุกรม
Kamil Kisiel

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

4

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

หลังจากใช้การกำหนดค่าใหม่และรีสตาร์ท sshd เพียงลองเข้าสู่ระบบสองสามครั้งและดูที่บันทึกเพื่อดูว่าทุกอย่างเรียบร้อย


3

หรือใช้ cron หรือที่ทำงานเพื่อเริ่มการสำรองข้อมูลถ้าคุณรู้สึกโชคร้าย?


cronหรือatจะทำงานในการคัดลอก 'เรียก' การทำงานคือการกำหนดค่าเก่ากลับมาแล้วจะเริ่มต้นใหม่ของการให้บริการ ...
cpbills

1

คุณไม่สามารถเรียกใช้ kill -HUP ใน PID ของบริการ SSH ได้หรือไม่ มันไม่สะอาด แต่ใช้งานได้


2
บ่อยครั้งSIGHUP เป็นวิธีที่สะอาดในการโหลดการกำหนดค่าของ daemon อีกครั้ง
grawity

มันคือการทำความสะอาดในกรณีนี้ จากแหล่งข้อมูลที่เชื่อถือได้: sshd อ่านไฟล์กำหนดค่าอีกครั้งเมื่อได้รับสัญญาณ
Hangup

1
pkill -HUP sshdปิดการเชื่อมต่อของฉัน สิ่งนี้ใช้ได้:kill -HUP $(pgrep -f /usr/bin/sshd)
Tom Hale

0

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


-1

ฉันจะไม่แนะนำให้รีสตาร์ท / โหลดใหม่ SSHD ในการเชื่อมต่อ sshd ฉันเคยเห็นหลายครั้งที่ sshd เพิ่งจะไม่เริ่มต้นเนื่องจากข้อผิดพลาดทางไวยากรณ์ใน sshd_config

แม้ว่าทุกอย่างจะโอเคกับไฟล์ปรับแต่ง แต่ก็มีความเสี่ยง


9
คุณสามารถใช้ sshd -t เพื่อทดสอบไฟล์กำหนดค่าไว้ล่วงหน้า
Milan Babuškov

ขอบคุณมิลานฉันรีบมองหาผู้ชายแบบนั้นใน Apache ของมัน - ดังนั้นฉันจึงต้องให้ความสำคัญกับ -s มากเกินไป
มิทช์

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