ฉันจะปิดใช้งาน SSHD ไม่ให้เริ่มโดยอัตโนมัติได้อย่างไร


32

หลังจากติดตั้ง openssh-server เซิร์ฟเวอร์จะเริ่มทุกครั้งที่ฉันบู๊ต ถ้าฉันต้องการให้มันเป็นคู่มือฉันต้องทำอะไรบ้าง?

ในรุ่น 0.6.7+ ของการพุ่งพรวดฉันจะเพิ่ม stanza "manual" ลงในไฟล์งาน

10.04 เริ่มต้นขึ้น 0.6.5-8 เป็นวิธีที่ต้องการปิดการใช้งาน ssh จากการเริ่มต้นโดยอัตโนมัติในกรณีนี้คืออะไร?

คำตอบ:


31

เปลี่ยนชื่อ /etc/init/ssh.conf เป็น /etc/init/ssh.conf.disabled

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled

รวดเร็วง่ายและจัดทำเอกสารด้วยตนเอง สมบูรณ์
เรียน

1
อาจเป็นไปได้ดียิ่งขึ้นกว่าecho manual | sudo tee /etc/init/ssh.conf.overrideเห็นวิธีการเปิดใช้งานหรือปิดการใช้งานบริการ
ที่นี่

echo manual | sudo tee /etc/init/ssh.conf.overrideดูเหมือนจะเป็นคำตอบที่ดีกว่ามากเพราะsudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledป้องกันการสตาร์ทเซิร์ฟเวอร์ด้วยตนเองโดยไม่เปลี่ยนกลับทุกครั้ง
Brian Z

@BrianZ ssh.conf.overrideใช้งานไม่ได้สำหรับฉันssh.overrideแทน
fikr4n

นี่ไม่ใช่วิธีที่แนะนำ คุณไม่ได้บอกระบบปฏิบัติการว่าบริการไม่ควรทำงาน ใช้update-rc.d(หรือเทียบเท่า) เพื่อทำเช่นนั้น
Reinier โพสต์

19

นี่น่าจะเพียงพอแล้ว:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off

สิ่งนี้ใช้ได้กับงานพุ่งพรวดหรือสคริปต์เก่า sys v init หรือไม่
komputes

นี้ควรจะเพียงพอแม้ว่าคุณกำลังใช้พุ่งพรวด (การพึ่งพาฐานบูต)
hhlp

มันบอกว่าSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n

7

ใน /etc/init/ssh.conf ของคุณให้ใส่เครื่องหมายจุดเริ่มต้นที่บรรทัด:

# ssh - OpenBSD Secure Shell server
#
# The OpenSSH server provides secure shell access to the system.

description     "OpenSSH server"

#start on filesystem or runlevel [2345]
stop on runlevel [!2345]

respawn
respawn limit 10 5
umask 022

1
ฉันเห็นว่าโดยทั่วไปแล้วดีกว่าที่จะใช้กลไกทั่วไปที่ @komputes และ hhlp พูดถึง แม้ว่านี่จะใช้ได้สำหรับกรณีเดียว
belacqua

6

หมายเหตุถึงผู้อ่าน:

สำหรับฉัน (อูบุนตู 14.xx) มีเพียงคำตอบของ Bryan Agee เท่านั้นที่ทำงาน: /etc/init/ssh.conf: คอมเม้นท์บรรทัด "start on filesystem หรือ runlevel ... "

ทำไมคนอื่นไม่ทำ

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled

จะส่งผลให้ปิดการใช้งานบริการอย่างสมบูรณ์ ไม่สามารถเริ่มต้นได้ผ่าน "service ssh start" อีกต่อไป

update-rc.d ssh enable # ตั้งค่า runlevels เริ่มต้นเป็น on

ไม่ทำงาน (อาจใช้รูทีนการเริ่มอัตโนมัติต่างกัน)

/etc/init/ssh.conf.override ด้วย "manual"

ไม่ทำงาน

แตะ / etc / ssh / sshd_not_to_be_run

ยังปิดการใช้งานระบบอย่างสมบูรณ์

sudo apt-get install bum

ซอฟต์แวร์ที่ดี แต่มันไม่แสดง ssh ดังนั้นจึงไม่มีอะไรให้ทำที่นี่

คนที่ตั้งคำถาม: ทำไมข้างต้นถึงมีคำตอบอยู่ที่นี่? ระบบเริ่มซับซ้อนหรือไม่มีใครพยายามแก้ปัญหาของเขา? oO


และเรากำลังพูดถึง Ubuntu 14.04 เท่านั้น ตอนนี้พยายามที่จะหาทางออกที่สากล ...
LatinSuD

5

สำหรับระบบที่มีsystemdวิธีที่เหมาะสมในการทำก็คือ

sudo systemctl disable ssh.service

แล้วก็

sudo systemctl stop ssh.service

1
สิ่งนี้ทำให้ฉันแตกหักsshdเมื่อวันที่ 16.04: หลังจากคำสั่งนั้นsystemctl enable ssh.serviceรายงานว่า "ไม่พบไฟล์" และฉันต้องทำการล้างและติดตั้ง sshd ใหม่เพื่อให้มันทำงานได้
BeeOnRope

3
sudo apt-get install bum

เริ่มต้นbumด้วยสิทธิ์ระดับผู้ดูแลระบบปิดใช้งาน openssh-server ยืนยันแล้วเสร็จ


2

สำหรับรุ่นที่มี SSH touch /etc/ssh/sshd_not_to_be_runที่ตั้งขึ้นโดยพุ่งพรวดวิ่ง สคริปต์ init พุ่งพรวดจะตรวจสอบไฟล์นี้และหากไม่มีอยู่จะไม่เริ่มต้น sshd


2

คู่มือวิธีการที่ให้มา. วิธีการ/etc/init/ssh.configแทนที่ไม่ทำงานสำหรับฉันโดยใช้ Ubuntu 14.04.03 sshdยังคงเริ่มต้นโดยอัตโนมัติ

/etc/ssh/sshd_not_to_be_runวิธีการป้องกันไม่ให้คู่มือการsshdเริ่มต้น

ผมต้องใช้วิธีการที่ไบรอันเบี้ยวของการเอา "เริ่มต้น" /etc/init/ssh.confในสายของ จากนั้นเริ่มด้วยตนเองsshd:

sudo service ssh start

1

ฉันมีคำถามเดียวกันและนี่คือสิ่งที่ฉันทำเกี่ยวกับมัน อาจเป็นการแฮ็ก แต่อาจใช้ได้ดีพอและคุณไม่จำเป็นต้องประนีประนอมโปรแกรม แต่อย่างใด ใส่สิ่งต่อไปนี้ใน crontab ของคุณ:

@reboot sudo service ssh stop

การดำเนินการนี้จะบอกcronให้หยุดsshทุกครั้งที่คุณเปิดคอมพิวเตอร์ การใช้sshเพื่อเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นไม่ได้รับผลกระทบเนื่องจากเป็นการปิดบริการเซิร์ฟเวอร์เท่านั้น และหากคุณต้องการเปิดใช้งานอีกครั้งในระยะเวลาสั้น ๆ สิ่งที่คุณต้องทำคือ:

sudo service ssh start

เพียงจำไว้ว่าให้ปิดเครื่องเมื่อคุณทำเสร็จแล้ว!


งานนี้ในระบบ Xubuntu 16.04 systemdของเราซึ่งแน่นอนการใช้งาน ฉันไม่เชื่อว่าสิ่งนี้จะทำงานบนระบบ pre-systemd Ubuntu
ARandomScientist

1
แทนที่จะทำ cron-job วิธีที่เหมาะสมก็คือการปิดการใช้งานด้วยsudo systemctl disable sshd.serviceแต่เมื่อคุณพูดถึงระบบ init ของคุณนั้นแตกต่างจากคำถามในคำถาม ข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับระบบ init ที่เก่ากว่าสามารถพบได้ในสองคำตอบแรกในโพสต์นี้askubuntu.com/questions/19320/…
db429
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.