サーバーを再起動せずにファイルsshd_configファイルの変更を取得する


33

ファイルの構成を変更しました

/etc/ssh/sshd_config

ただし、サーバーの再起動後にのみ有効になります。サーバーを再起動せずに変更を行う方法は?


あなたは使用することsudo service ssh restartを反映するためにサービスを再起動します。ただし、SSHを介して接続している場合、セッションは終了します。
AzkerM

回答:


39

sshdサービスを再起動するだけです:

sudo service sshd restart

または:

sudo /etc/init.d/sshd restart

6
SSH接続を使用している場合はどうなりますか?
アンワル

7
何も... SSHDをバウンスすると、陽気に、既存のSSH接続を許可するスマート十分では衰えることなく継続されていない
スコットStensland

4
/etc/init.dで直接実行することはお勧めしません。「service」コマンドを使用します。ほとんどのサービスは気にしませんが、環境変数の影響を受けるため、いくつかのサービスがあります。「サービス」により、環境がクリーンアップされます。たとえば、「sudo」を実行すると、HOME環境変数は非ルートホームディレクトリに残ります。
クリスコグドン

5
sudo service ssh restart

しません sshではなくsshdを再起動する必要があります。

sudo service sshd restart

3
システム構成に依存します。Lubuntu 14.04ではsudo service ssh restartうまく機能しsudo service sshd restartますが、「sshd:認識されないサービス」と報告します。なぜこれが変わるのかわからない
...-schulwitz

3

これを行うには、SSHサービスを再起動せずに、さらに邪魔にならない方法があります。

からman sshd

sshdは、/ usr / sbin / sshdなどで開始された名前とオプションで自身を実行することにより、ハングアップ信号SIGHUPを受信すると、構成ファイルを再読み取りします。

したがって、次のようなコマンドを使用して、SIGHUPをSSHサーバープロセスに送信できます。

sudo kill -SIGHUP $(pgrep -f "sshd -D")

pgrep -f "sshd -D"一部には、新しい接続をリッスンは、信号を必要としないアクティブな各セッションの他のPIDがある可能性が高いので、ということsshdデーモンプロセスのPIDのみを返します。


2
これは最も安全なstribika.github.io/2015/01/04/secure-secure-shell.html)設定をリロードする方法です:「リモートホストでSSHを設定するときは、非常に注意してください。常にアクティブなセッションを維持してください。 sshdを再起動します。代わりに、セッションを強制終了せずにSIGHUPシグナルを送信して構成をリロードできます。別のポートで新しいsshdインスタンスを起動してテストすることで、さらに注意することができます。
アドリアーノルーカス

に意味のある違いはありますsudo pkill -HUP sshdか?
AdamKalisz

@Adamプロセスであるアクティブなクライアントではなく、リスニングプロセスのみをHUPしますsshdsudo pkill -HUP -f "sshd -D"魅力的な代替手段ですが、sudoコマンドライン全体が独自の検索パターンに一致するため、pkillは独自の親に通知します。のよう... -f "sshd -[D]にそれ自体に一致しないパターンを思い付くことができますが、それは少し物事を難読化します。pgrepメソッドは、学習者が頭を包み込むのが簡単だと思います。
スティーブンK

2

ルートチェックとして

service --status-all | grep ssh

sshdサービスはありませんでしたがssh、Ubuntuサーバーでサービスを利用しました。それから

service ssh restart

2

Systemd Systemsの場合-Ubuntuのデフォルト

sudo systemctl reload sshd.service

または

 sudo systemctl reload sshd

または

 sudo /bin/systemctl reload sshd.service

Sysvinit Systemsの場合

sudo service sshd reload

または

sudo /etc/init.d/sshd reload

0

再起動は再起動のより良い代替手段である可能性があります

sudo service sshd reload

ボンネットの下では、HUPスティーブンKがすでに答えたのとほとんど同じ方法でsshdデーモンプロセスにシグナルを送ります。違いは、このバリアントはコマンドを直接ではkillprocなく関数を使用killして、さらに正確な方法で信号を送信することです(間違ったプロセスに信号を送信する可能性のあるエラーを減らすため)。サービスを再起動/停止せずに設定が再読み込みされます。

もちろん、他の人が議論したように、SSHデーモンが実際にどのように呼び出されるかを知ることは価値があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.