ฉันเปลี่ยนการกำหนดค่าในไฟล์
/etc/ssh/sshd_config
แต่ได้ผลหลังจากรีบูตเซิร์ฟเวอร์เท่านั้น วิธีการเปลี่ยนแปลงโดยไม่ต้องรีบูตเครื่องเซิร์ฟเวอร์?
ฉันเปลี่ยนการกำหนดค่าในไฟล์
/etc/ssh/sshd_config
แต่ได้ผลหลังจากรีบูตเซิร์ฟเวอร์เท่านั้น วิธีการเปลี่ยนแปลงโดยไม่ต้องรีบูตเครื่องเซิร์ฟเวอร์?
คำตอบ:
เพียงเริ่มบริการ sshd:
sudo service sshd restart
หรือ:
sudo /etc/init.d/sshd restart
sudo service ssh restart
จะไม่ทำมัน คุณต้องรีสตาร์ท sshd ไม่ใช่ ssh:
sudo service sshd restart
sudo service ssh restart
งานได้ดีในขณะที่sudo service sshd restart
รายงาน "sshd: บริการที่ไม่รู้จัก" ไม่แน่ใจว่าทำไมถึงแตกต่างกันไป ...
มีวิธีที่ล่วงล้ำน้อยลงในการทำเช่นนี้โดยไม่ต้องเริ่มบริการ SSH ใหม่
จากman sshd
:
sshd อ่านไฟล์กำหนดค่าอีกครั้งเมื่อได้รับสัญญาณ Hangup, SIGHUP โดยดำเนินการด้วยชื่อและตัวเลือกที่เริ่มต้นด้วยเช่น / usr / sbin / sshd
ดังนั้นคุณสามารถใช้คำสั่งดังต่อไปนี้เพื่อส่ง SIGHUP ไปยังกระบวนการเซิร์ฟเวอร์ SSH:
sudo kill -SIGHUP $(pgrep -f "sshd -D")
pgrep -f "sshd -D"
ส่วนหนึ่งจะกลับมาเพียง PID ของกระบวนการภูต sshd ที่ฟังสำหรับการเชื่อมต่อใหม่เนื่องจากมีแนวโน้มที่จะเป็น PIDs อื่น ๆ สำหรับการใช้งานในแต่ละเซสชั่นที่ไม่จำเป็นต้องส่งสัญญาณ
sudo pkill -HUP sshd
ไหม?
sshd
กระบวนการ sudo pkill -HUP -f "sshd -D"
เป็นทางเลือกที่ดึงดูด แต่แล้ว pkill ส่งสัญญาณพาเรนต์ของตัวเองsudo
เนื่องจากบรรทัดคำสั่งแบบเต็มตรงกับรูปแบบการค้นหาของมันเอง คุณสามารถสร้างรูปแบบที่ไม่ตรงกับตัวเอง... -f "sshd -[D]
แต่สิ่งที่ทำให้สับสนเล็กน้อย ฉันคิดว่าวิธีการ pgrep นั้นง่ายกว่าสำหรับผู้เรียนในการพันหัว
เช่นเดียวกับการตรวจสอบราก
service --status-all | grep ssh
ฉันไม่มีsshd
บริการ แต่มีssh
บริการบนเซิร์ฟเวอร์ Ubuntu แล้วก็
service ssh restart
sudo systemctl reload sshd.service
หรือ
sudo systemctl reload sshd
หรือ
sudo /bin/systemctl reload sshd.service
sudo service sshd reload
หรือ
sudo /etc/init.d/sshd reload
การโหลดซ้ำอาจเป็นทางเลือกที่ดีกว่าในการรีสตาร์ท
sudo service sshd reload
ภายใต้ประทุนมันจะส่งHUP
สัญญาณไปยังกระบวนการภูต sshd เกือบทางเดียวกันสตีเว่น K แล้วตอบ ความแตกต่างก็คือตัวแปรนี้ใช้killproc
ฟังก์ชั่นแทนkill
คำสั่งโดยตรงเพื่อส่งสัญญาณอย่างแม่นยำยิ่งขึ้น (เพื่อลดข้อผิดพลาดที่อาจเกิดขึ้นจากการส่งสัญญาณไปยังกระบวนการที่ไม่ถูกต้อง) การกำหนดค่าจะอ่านซ้ำโดยไม่ต้องเริ่ม / หยุดบริการ
แน่นอนว่ามันคุ้มค่าที่จะรู้ว่า SSH deamon นั้นถูกเรียกว่าเป็นจริงอย่างไรเมื่อคนอื่นพูดถึง
sudo service ssh restart
เพื่อเริ่มบริการใหม่เพื่อให้มีผล แต่จำไว้ว่าถ้าคุณเชื่อมต่อผ่าน SSH เซสชันของคุณจะถูกยกเลิก