SSH - AlmaLinux

  • 作成日:
  • 最終更新日:2025/10/11

SSH とは?

SSHとは、Secure Shell(セキュアシェル)の略で、リモートコンピュータと通信するためのプロトコルです。

認証部分を含めネットワーク上の通信がすべて暗号化されるため、安全に通信することができます。

インストール

sudo dnf install openssh openssh-clients openssh-server

SSH サーバーの起動と自動起動の設定

# 起動
systemctl start sshd

# 自動起動
systemctl enable sshd

設定ファイルのパス

/etc/ssh/sshd_config

設定

# ポート番号

#Prot 22
Port 10022 # 変更後

ファイアウォールのサービスまたは22番ポートを削除するには、新しいポートで接続できた後削除します。

次の「 root 」で接続できないようにする設定は、ユーザーを作成し、新しいユーザーで接続が確認できてから変更します。

PermitRootLogin no

パスワード接続できな異様にする設定は、鍵認証で問題なく接続できた後に変更します。

# パスワードで接続できないようにする
PasswordAuthentication no

有効設定になっているものを確認するには、以下のコマンドを実行します。sshd -Tは、サーバーが実際に読み込んでいる設定値 を確認できる

sshd -T

sudo sshd -T | grep -E 'passwordauthentication|permitrootlogin|port'

ファイアウォールの設定

SSHのポート番号を「 2222 」に変更した場合、ファイアウォールの設定に追加するには以下のコマンドを実行します。

sudo firewall-cmd --zone=public --permanent --add-port=2222/tcp

ファイアウォールの設定から「 ssh 」のサービスを削除するには、以下のコマンドを実行します。

sudo firewall-cmd --permanent --remove-service=ssh

SELinux 有効の場合

SELinux が有効の場合、設定を変更して再起動しようとするとエラーになります。文法チェックしてエラーがない場合は SELinux の可能性が高いです。

# 文法チェック
sudo sshd -t

semanage コマンドを利用するには、policycoreutils-python-utilsをインストールします。

sudo dnf install -y policycoreutils-python-utils

SSH のポート番号を変更した場合、SELinux に新しいポート番号を許可する場合は、以下のようにします。

# ポリシーに追加
semanage port -a -t ssh_port_t -p tcp 2222

# 設定確認
semanage port -l | grep ssh

追加したポートを削除したい場合は、以下のようにします。

sudo semanage port -d -t ssh_port_t -p tcp 2222

※一覧に出てくるデフォルトの22はシステム標準のため削除できません。