web-dev-qa-db-ja.com

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

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

/etc/ssh/sshd_config

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

28
Maxim Yefremov

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

Sudo service sshd restart

または:

Sudo /etc/init.d/sshd restart
32
Pathin
Sudo service ssh restart

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

Sudo service sshd restart
5
William Dowling

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

man sshdから:

sshdは、ハングアップ信号SIGHUPを受け取ったときに、起動された名前とオプションを使用して自分自身を実行することにより、構成ファイルを再読み取りします。/usr/sbin/sshd。

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

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

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

3
Steven K

ルートチェックとして

service --status-all | grep ssh

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

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
1
abu_bua

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

Sudo service sshd reload

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

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

0
Alexander Ites