12,967
回編集
細 (Wiki がページ「SSHを有効にする方法(SUSE)」を「設定 - SSH」に、リダイレクトを残さずに移動しました) |
|||
31行目: | 31行目: | ||
次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。<br> | 次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。<br> | ||
sudo systemctl restart sshd | sudo systemctl restart sshd | ||
<br> | |||
Firewalldを有効にしている場合は、SSHサービスのポート番号を開放する。<br> | |||
sudo firewall-cmd --permanent --add-port=<変更したSSHのポート番号>/tcp | |||
<br> | |||
Firewalldの設定を反映させるため、Firewalldを再起動する。<br> | |||
sudo firewall-cmd --reload | |||
<br><br> | |||
== SSH接続中のサスペンドの無効化 == | |||
SSH接続されているPCは無操作状態とみなされて、サスペンドの設定をしている場合、所定の時間が経過するとサスペンドされる。<br> | |||
そのため、SSH接続中のユーザが存在する時はサスペンドしないように設定する必要がある。<br> | |||
<br> | |||
まず、/usr/lib/systemd/systemディレクトリにsystemdユニットファイルを作成する。<br> | |||
<br> | |||
これは、スリープフックと呼ばれるものであり、スリープまたはハイバネートする前に<code>ExecStart</code>で指定したコマンドが実行される。<br> | |||
まず、<code>who</code>コマンドを実行することにより、SSH接続中のユーザが存在するかどうか確認する。<br> | |||
もし、SSH接続中のユーザが存在する場合は、終了コードを0以外にして後続処理を動作させないようにする。<br> | |||
sudo vi /usr/lib/systemd/system/inhibit-sleep.service | |||
<br> | |||
# /usr/lib/systemd/system/inhibit-sleep.serviceファイル | |||
[Unit] | |||
Description=Inhibit sleep when ssh logged | |||
Before=sleep.target | |||
[Service] | |||
Type=oneshot | |||
ExecStart=/usr/bin/sh -c '! who | grep -q "(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\})"' | |||
[Install] | |||
RequiredBy=sleep.target | |||
<br> | |||
以下のシンボリックリンクを作成する。<br> | |||
sudo ln -s /usr/lib/systemd/system/inhibit-sleep.service /etc/systemd/system/ | |||
<br> | |||
コマンドでsystemdユニットファイルを有効にするため、以下のコマンドを実行する。<br> | |||
sudo systemctl enable inhibit-sleep.service | |||
<br> | |||
動作確認するには、システムログを確認する。<br> | |||
サスペンドした場合は<code>Reached target Sleep.</code>、サスペンドから復帰した場合は<code>Stopped target Sleep.</code>と表示される。<br> | |||
sudo journalctl -f -usleep.target | |||
<br><br> | <br><br> | ||