ฉันจะหยุด / เริ่ม ssh ได้อย่างไร ฉันได้พยายาม
/etc/init.d/ssh restart
sudo service ssh restart
sudo restart ssh
ฉันได้รับข้อผิดพลาดทุกครั้ง
ฉันจะหยุด / เริ่ม ssh ได้อย่างไร ฉันได้พยายาม
/etc/init.d/ssh restart
sudo service ssh restart
sudo restart ssh
ฉันได้รับข้อผิดพลาดทุกครั้ง
คำตอบ:
ใช้คำสั่งนี้:
sudo systemctl restart ssh
หากต้องการรีสตาร์ทเซิร์ฟเวอร์ / daemon SSH
ก้าวไปข้างหน้าด้วยการsystemd
เริ่มต้นด้วยUbuntu 15.04ตอนนี้คุณใช้ไวยากรณ์นี้เพื่อหยุดเริ่มต้นหรือเริ่มบริการใหม่:
sudo systemctl <action> <service-name>
มันควรจะง่ายเหมือน (ทดสอบบนการติดตั้งใหม่กับ openssh-server)
sudo stop ssh
sudo start ssh
ในฐานะที่ใช้ประโยชน์จากมันพุ่งพรวดนี้เป็นวิธีที่ดีที่สุด™ที่จะทำมันมากกว่าการใช้ /etc/init.d/ssh, service
หรืออัญเชิญ sshd โดยตรง ตรวจสอบให้แน่ใจว่าได้รันคำสั่งทั้งสอง ถ้าคุณได้รับข้อผิดพลาดในstop ssh
, start ssh
อยู่แล้วและดูสิ่งที่มันพูดว่าการให้บริการอาจจะหยุดแล้ว
(ฉันอยากจะแนะนำstop
/ start
มากกว่าrestart
ยกเว้นว่าคุณกำลังพยายามที่จะรีสตาร์ทระบบจากระยะไกลหาก ssh หยุดแล้วrestart
จะไม่เริ่มต้น)
หากคำสั่งเหล่านั้นไม่ทำงานคุณอาจพบข้อบกพร่องหรือมีการแก้ไขระบบของคุณมากเกินไปซึ่งในกรณีนี้คุณอย่างน้อยก็รู้ว่าปัญหาไม่ได้เกิดจากอะไร
คำสั่งสำหรับการรีสตาร์ทssh service
คือ:
sudo service ssh restart
ตั้งแต่ Ubuntu 15.04, Canonical เรือไม่พุ่งพรวดโดยค่าเริ่มต้น
ดังนั้นคำสั่งstart
, stop
และrestart
จะไม่สามารถใช้ได้
วิธีที่ถูกต้องสำหรับการรีสตาร์ทบริการ SSH (หรือบริการอื่น ๆ ) ตอนนี้เป็นหนึ่งในสองคำสั่งต่อไปนี้:
sudo systemctl restart ssh
sudo service ssh restart
systemctl
และservice
; man service
; man systemctl
; man reboot
; man shutdown
.
ก่อนอื่นให้ตรวจสอบว่า sshd กำลังทำงานโดยใช้สิ่งต่อไปนี้หรือไม่:
ps -ef | grep sshd
คุณควรเห็นบางสิ่งเช่น:
root 1234 1 0 12:28 ? 00:00:00 /usr/sbin/sshd -D
หากคุณไม่เห็นบรรทัด/usr/sbin/sshd -D
ใด ๆ ดังนั้น sshd อาจไม่เคยเริ่มทำงานหรือขัดข้องซึ่งจะต้องมีการแก้ไขปัญหาเพิ่มเติมเพื่อหาสาเหตุ
หากคุณเห็นบรรทัดดังกล่าวให้เรียกใช้สิ่งต่อไปนี้:
cat /var/run/sshd.pid
นี่ควรพิมพ์ id กระบวนการของ sshd ดังนั้นในกรณีนี้คุณควรเห็น:
userid@computername:~$ cat /var/run/sshd.pid
1234
หากเนื้อหาของ sshd.pid ไม่ตรงกับ id กระบวนการของอินสแตนซ์ที่กำลังทำงานของ sshd แสดงว่ามีบางอย่างเริ่มต้นใหม่อย่างไม่ถูกต้อง แต่ไม่ว่ารายละเอียดใดที่คุณพบที่นี่ควรทำให้คุณถูกทาง ไม่ว่าจะเป็นข้อผิดพลาดการเริ่มระบบใหม่อย่างไม่ถูกต้องหรือไม่เริ่มทำงานตั้งแต่แรก
ฉันคิดว่าข้อผิดพลาดอินสแตนซ์ที่ไม่รู้จักเป็นเพราะ SSH ไม่ทำงาน
ลอง:
ps ax | grep sshd
หากต้องการดูว่า SSH daemon กำลังทำงานอยู่หรือไม่คุณควรเห็นสิ่งต่อไปนี้
/usr/sbin/sshd -D
ไม่ว่าในกรณีใดเพียงลองทำสิ่งเหล่านี้:
sudo /etc/init.d/ssh start
sudo start ssh
บน Ubuntu Desktop:
ก่อนตรวจสอบสถานะของบริการ:
sudo service ssh status
ควรแสดง: - Active: active (running)
ถ้ามันทำงานอยู่ไม่จำเป็นต้องรีสตาร์ท หากคุณยังต้องการเริ่มต้นใหม่อีกครั้ง Ubuntu เรียกใช้บริการ ssh ไม่ใช่ sshd
service ssh restart
แต่ถ้าไม่ใช่ Ubuntu Desktop ให้ใช้ CLI:
sudo systemctl restart ssh
sudo service ssh restart
บริการถูกควบคุมโดยคนธรรมดาและไม่ใช่ sysvinit ดังนั้นคุณจะพบได้ที่ /etc/init/ssh.conf แทนที่จะเป็น /etc/init.d/ssh
หากคุณต้องการเปลี่ยนการตั้งค่าบางอย่าง (เช่นพอร์ตการฟังและสิทธิ์การเข้าสู่ระบบรูท) โดยแก้ไขไฟล์การกำหนดค่าผ่านคำสั่ง:
sudo nano /etc/ssh/sshd_config
บนเดสก์ท็อป Ubuntu คุณสามารถใช้ gedit แทน nano:
ในที่สุดใช้การเปลี่ยนแปลงโดยการรีสตาร์ทหรือโหลดใหม่ SSH:
sudo service ssh restart
หากด้านบนยังคงไม่ทำงานให้พิมพ์สิ่งนี้:
sudo service ssh stop
sudo service ssh start
หากทั้งหมดข้างต้นล้มเหลวลองเริ่มระบบ Ubuntu ของคุณ:
sudo reboot -f