Bagaimana cara menonaktifkan SSHD dari memulai secara otomatis?

32

Setelah menginstal openssh-server, server mulai setiap kali saya boot. Jika saya ingin manual, apa yang harus saya lakukan?

Dalam versi 0.6.7+ dari pemula saya akan menambahkan bait "manual" ke file pekerjaan.

10,04 memiliki pemula 0,6,5-8. Apa cara yang disukai untuk menonaktifkan ssh dari memulai secara otomatis dalam kasus ini?

komputes
sumber

Jawaban:

31

Ganti nama /etc/init/ssh.conf menjadi /etc/init/ssh.conf.disabled.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
sumber
Cepat, mudah, dan mendokumentasikan diri sendiri. Sempurna.
LeartS
1
Mungkin bahkan lebih baik daripada echo manual | sudo tee /etc/init/ssh.conf.override, lihat juga bagaimana cara mengaktifkan atau menonaktifkan layanan
sini
echo manual | sudo tee /etc/init/ssh.conf.overridesepertinya jawaban yang jauh lebih baik, karena sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledjuga mencegah memulai server secara manual tanpa mengubahnya kembali setiap waktu.
Brian Z
@BrianZ ssh.conf.overridetidak bekerja untuk saya, ssh.overridesebagai gantinya.
fikr4n
Ini bukan cara yang disarankan. Anda tidak memberi tahu OS bahwa layanan ini seharusnya tidak berjalan. Gunakan update-rc.d(atau setara) untuk melakukan itu.
Reinier Post
19

Ini sudah cukup ,:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off
hhlp
sumber
Apakah ini bekerja dengan pekerjaan pemula atau hanya skrip sys v init lama?
komputes
Ini seharusnya cukup, bahkan jika Anda menggunakan pemula (boot dependensi-basis)
hhlp
DikatakanSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n
7

Di /etc/init/ssh.conf Anda, beri komentar pada baris awal :

# 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
Bryan Agee
sumber
1
Saya berpendapat bahwa secara umum lebih baik menggunakan mekanisme yang lebih umum yang @komputes dan hhlp sebutkan. Meskipun ini baik untuk satu kasus.
belacqua
6

catatan untuk pembaca:

untuk saya (ubuntu 14.xx) hanya jawaban Bryan Agee yang berfungsi: /etc/init/ssh.conf: beri komentar pada baris "start on filesystem or runlevel ..."

mengapa yang lain tidak melakukannya?

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

akan mengakibatkan sepenuhnya menonaktifkan layanan. Maka tidak dapat dijalankan melalui "service ssh start" lagi.

update-rc.d ssh memungkinkan # menyetel runlevel default ke aktif

tidak berfungsi (mungkin menggunakan rutin autostart yang berbeda)

/etc/init/ssh.conf.override dengan "manual"

tidak bekerja

sentuh / etc / ssh / sshd_not_to_be_run

juga sepenuhnya menonaktifkan sistem

sudo apt-get install bum

perangkat lunak yang bagus, tetapi tidak menunjukkan ssh, jadi tidak ada hubungannya di sini

pertanyaan orang: mengapa jawaban di atas ada di sini? apakah sistem start sangat rumit atau tidak ada yang mencoba solusinya? oo

TheTrowser
sumber
Dan kita hanya berbicara tentang Ubuntu 14.04. Sekarang cobalah untuk menemukan solusi universal ...
LatinSuD
5

Untuk sistem yang memiliki systemdcara yang tepat untuk melakukannya adalah

sudo systemctl disable ssh.service

kemudian

sudo systemctl stop ssh.service
Jocelyn
sumber
1
Ini saya rusak sshdpada 16,04: setelah perintah itu systemctl enable ssh.servicemelaporkan "File tidak ditemukan" dan saya harus membersihkan dan menginstal ulang sshd untuk membuatnya berfungsi.
BeeOnRope
3
sudo apt-get install bum

Mulai bumdengan hak administratif, nonaktifkan openssh-server, konfirmasi, selesai.

RobinJ
sumber
2

Untuk versi dengan ssh dimulai oleh pemula, jalankan touch /etc/ssh/sshd_not_to_be_run. Skrip init pemula memeriksa file ini dan, jika ada, tidak memulai sshd.

Daenyth
sumber
2

Metode manual yang disediakan metode /etc/init/ssh.config.override tidak berfungsi untuk saya menggunakan Ubuntu 14.04.03. sshdmasih dimulai secara otomatis.

The /etc/ssh/sshd_not_to_be_runMetode mencegah pengguna sshdawal.

Saya harus menggunakan metode Brian Agee untuk menghapus "mulai" pada baris /etc/init/ssh.conf. Kemudian untuk memulai secara manual sshd:

sudo service ssh start
Robert Bailey
sumber
1

Saya memiliki pertanyaan yang sama dan inilah yang saya lakukan. Mungkin sedikit hack, tapi itu bekerja dengan cukup baik, dan Anda tidak perlu kompromi dengan program apa pun. Masukkan yang berikut ini di crontab Anda:

@reboot sudo service ssh stop

Ini memberitahu cronuntuk berhenti sshsetiap kali Anda menyalakan komputer Anda. Menggunakan sshuntuk terhubung ke komputer lain tidak terpengaruh, karena ini hanya mematikan layanan server. Dan jika Anda ingin mengaktifkannya kembali untuk sementara waktu, yang harus Anda lakukan adalah:

sudo service ssh start

Ingatlah untuk mematikannya kembali setelah selesai!

ARandomScientist
sumber
Ini berfungsi pada sistem Xubuntu 16.04 saya yang, tentu saja, menggunakan systemd. Saya tidak percaya ini akan bekerja pada sistem Ubuntu pra-systemd.
ARandomScientist
1
Alih-alih membuat cron-job, cara yang tepat adalah dengan menonaktifkannya sudo systemctl disable sshd.service, namun seperti yang Anda sebutkan sendiri sistem init Anda jauh berbeda dengan yang ada di pertanyaan. semua info yang relevan tentang sistem init yang lebih lama dapat ditemukan di dua jawaban pertama dalam posting ini askubuntu.com/questions/19320/…
db429