SSHDの自動起動を無効にするにはどうすればよいですか?


32

openssh-serverをインストールした後、起動するたびにサーバーが起動します。マニュアルにする場合はどうすればよいですか?

upstartのバージョン0.6.7+では、ジョブファイルに「手動」スタンザを追加します。

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

高速、簡単、自己文書化。パーフェクト。
LeartS 14年

1
おそらくより良いよりもecho manual | sudo tee /etc/init/ssh.conf.override、も参照ハウツー・イネーブルまたはディセーブル-サービス
ここでは

echo manual | sudo tee /etc/init/ssh.conf.overridesudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled毎回元に戻すことなく手動でサーバーを起動することもできないため、はるかに良い答えのようです。
ブライアンZ

代わりにssh.conf.override、@ BrianZ は機能しませんssh.override
fikr4n

これは推奨される方法ではありません。サービスが実行されるはずがないことをOSに伝えていません。それを使用して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

upstart(依存関係ベースのブート)を使用している場合でも、これで十分なはずです
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が言及しているより一般的なメカニズムを使用する方が良いと考えています。これは単一の場合には問題ありませんが。
ベラク

6

読者への注意:

私にとっては(ubuntu 14.xx)Bryan Ageeの答えのみが機能しました:/etc/init/ssh.conf:「ファイルシステムまたはランレベルで開始...」行をコメントアウトします

なぜ他の人はしませんか?

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

サービスが完全に無効になります。これにより、「service ssh start」から起動できなくなります。

update-rc.d ssh enable#デフォルトのランレベルをオンに設定します

単に機能しない(おそらく異なる自動起動ルーチンを使用する)

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

単に機能しない

/ etc / ssh / sshd_not_to_be_runをタッチします

また、システムを完全に無効にします

sudo apt-get install bum

素晴らしいソフトウェアですが、sshは表示されないため、ここでは何もしません

質問者:なぜここでも上記の答えがありますか?起動システムは非常に複雑ですか、それとも誰も彼のソリューションを試していませんか?ああ


そして、私たちはUbuntu 14.04についてのみ話している。今、普遍的な解決策を見つけようとします
...-LatinSuD

5

systemd適切な方法があるシステムの場合

sudo systemctl disable ssh.service

それから

sudo systemctl stop ssh.service

1
これにより、sshd16.04で問題が発生しました。コマンドsystemctl enable ssh.serviceが「ファイルが見つかりません」と報告した後、sshdを削除して再インストールする必要がありました。
BeeOnRope

3
sudo apt-get install bum

bum管理者権限で開始し、openssh-serverを無効にして確認し、完了します。


2

upstartでsshを起動したバージョンの場合は、を実行しtouch /etc/ssh/sshd_not_to_be_runます。upstart initスクリプトはこのファイルをチェックし、存在する場合はsshdを開始しません。


2

/etc/init/ssh.configUbuntu 14.04.03を使用すると、.overrideメソッドが提供する手動のメソッドは機能しません。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。これは、事前にシステム化されたUbuntuシステムで機能するとは思わない。
-ARandomScientist

1
cronジョブを作成する代わりに、を使用してそれを無効にするのが適切な方法ですがsudo systemctl disable sshd.service、あなた自身が述べたように、initシステムは問題のシステムとは大きく異なります。古いのinitシステムに関するすべての関連情報は、この記事の最初の2つの答えで見つけることができaskubuntu.com/questions/19320/...
db429
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.