ฉันจะเริ่มบริการ SSH ใหม่ได้อย่างไร


21

ฉันจะหยุด / เริ่ม ssh ได้อย่างไร ฉันได้พยายาม

/etc/init.d/ssh restart
sudo service ssh restart
sudo restart ssh

ฉันได้รับข้อผิดพลาดทุกครั้ง


2
สำคัญ - อย่าติดตั้ง openssh-server บนเครื่องของคุณ (แล็ปท็อป / เดสก์ท็อป) เว้นแต่คุณต้องการอนุญาตการเชื่อมต่อขาเข้าจากเครื่องระยะไกลอื่น ๆ ... คุณไม่จำเป็นต้องใช้แพคเกจนี้เพื่อ ssh ไปยังเครื่องอื่น ๆ เซิร์ฟเวอร์นี้
Scott Stensland

คำตอบ:


24

15.04 และใหม่กว่า:

ใช้คำสั่งนี้:

sudo systemctl restart ssh

หากต้องการรีสตาร์ทเซิร์ฟเวอร์ / daemon SSH

ก้าวไปข้างหน้าด้วยการsystemdเริ่มต้นด้วยUbuntu 15.04ตอนนี้คุณใช้ไวยากรณ์นี้เพื่อหยุดเริ่มต้นหรือเริ่มบริการใหม่:

sudo systemctl <action> <service-name>

12

ก่อน 15.04:

มันควรจะง่ายเหมือน (ทดสอบบนการติดตั้งใหม่กับ openssh-server)

sudo stop ssh
sudo start ssh

ในฐานะที่ใช้ประโยชน์จากมันพุ่งพรวดนี้เป็นวิธีที่ดีที่สุด™ที่จะทำมันมากกว่าการใช้ /etc/init.d/ssh, serviceหรืออัญเชิญ sshd โดยตรง ตรวจสอบให้แน่ใจว่าได้รันคำสั่งทั้งสอง ถ้าคุณได้รับข้อผิดพลาดในstop ssh, start sshอยู่แล้วและดูสิ่งที่มันพูดว่าการให้บริการอาจจะหยุดแล้ว

(ฉันอยากจะแนะนำstop/ startมากกว่าrestartยกเว้นว่าคุณกำลังพยายามที่จะรีสตาร์ทระบบจากระยะไกลหาก ssh หยุดแล้วrestartจะไม่เริ่มต้น)

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




4

ตั้งแต่ Ubuntu 15.04, Canonical เรือไม่พุ่งพรวดโดยค่าเริ่มต้น
ดังนั้นคำสั่งstart, stopและrestartจะไม่สามารถใช้ได้

วิธีที่ถูกต้องสำหรับการรีสตาร์ทบริการ SSH (หรือบริการอื่น ๆ ) ตอนนี้เป็นหนึ่งในสองคำสั่งต่อไปนี้:

sudo systemctl restart ssh
sudo service ssh restart


2

ก่อนอื่นให้ตรวจสอบว่า 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 แสดงว่ามีบางอย่างเริ่มต้นใหม่อย่างไม่ถูกต้อง แต่ไม่ว่ารายละเอียดใดที่คุณพบที่นี่ควรทำให้คุณถูกทาง ไม่ว่าจะเป็นข้อผิดพลาดการเริ่มระบบใหม่อย่างไม่ถูกต้องหรือไม่เริ่มทำงานตั้งแต่แรก


2

ฉันคิดว่าข้อผิดพลาดอินสแตนซ์ที่ไม่รู้จักเป็นเพราะ SSH ไม่ทำงาน

ลอง:

ps ax | grep sshd

หากต้องการดูว่า SSH daemon กำลังทำงานอยู่หรือไม่คุณควรเห็นสิ่งต่อไปนี้

/usr/sbin/sshd -D

ไม่ว่าในกรณีใดเพียงลองทำสิ่งเหล่านี้:
sudo /etc/init.d/ssh start
sudo start ssh


1

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