ฉันเปลี่ยนการกำหนดค่าในไฟล์
/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 เซสชันของคุณจะถูกยกเลิก