Rocky Linux 9 または 8 に SSH をインストールする方法

SSH (Secure Shell) は、Linux サーバーにリモートでアクセスして管理するために使用される安全なプロトコルです。暗号化された通信を提供し、クライアントとサーバー間で転送されるデータのセキュリティを確保します。SSH は、システム管理者と開発者にとって基本的なツールであり、安全でないネットワーク上でコマンドの実行、ファイルの転送、ネットワーク サービスの安全な管理など、さまざまなタスクを実行できます。

Rocky Linux 9 または 8 で SSH を設定するには、デフォルトのリポジトリを使用して簡単なインストール プロセスに従うことができます。このガイドでは、インストール手順を説明し、セキュリティと使いやすさを向上させるための初期構成のヒントを提供します。

SSH インストール前に Rocky Linux を更新する

Rocky Linux に SSH をインストールして設定する前に、システムのパッケージが最新であることを確認することが重要です。これにより、操作がスムーズになるだけでなく、ソフトウェアの競合の可能性も最小限に抑えられます。

Rocky Linux システムを更新するには、次のコマンドを使用します。

sudo dnf upgrade --refresh

DNFコマンドでSSHをインストールする

次のステップでは、OpenSSH サーバーが Rocky Linux システムにすでに存在しているかどうかを確認します。これは、次のコマンドを実行して確認できます。

rpm -qa | grep openssh-server

このコマンドは、OpenSSH サーバーがインストールされている場合、関連する出力を返します。出力がない場合は、システムに OpenSSH サーバーが存在しないことを示します。この問題を解決して OpenSSH サーバーをインストールするには、次のコマンドを使用します。

sudo dnf install openssh-server

SSH (SSHD) サービスを有効にする

OpenSSH サーバーを正常にインストールしたら、systemd フレームワーク内で SSHD サービスを有効にすることが必須です。これにより、システムの再起動ごとに SSH デーモンが自動的に初期化されるようになります。これを実現するには、次のコマンドを実行します。

sudo systemctl enable sshd

SSHD サービスが自動起動に設定されたので、次のコマンドを使用して SSH サーバーを手動で起動できます。

sudo systemctl start sshd

検証の目的で、SSH サーバーが問題なく実行されていることを確認するには、次のコマンドでステータスを確認できます。

sudo systemctl status sshd

デフォルト ポート (22) が SSH 接続の着信をアクティブにリッスンしていることを確認するには、次のコマンドを実行します。

sudo ss -lt

Rocky Linux 9 または 8 で SSH 経由でリモート サーバーに接続する

Rocky Linux システムで SSH を適切に設定すると、リモート サーバーへの接続を確立できるようになります。さまざまな接続シナリオで SSH を活用する方法の詳細は次のとおりです。

Rocky Linux で SSH によるパスワード認証を使用して接続する

パスワードベースの認証を使用して SSH を使用してリモート サーバーへの接続を確立するには、次のコマンドを使用します。

ssh username@remote_server

ここで、「username」を実際のユーザー名に、「remote_server」を目的のリモート サーバーの IP アドレスまたはホスト名に置き換えます。実行すると、認証のためにパスワードを入力するよう求められます。

SSH による公開鍵認証を使用した接続

SSH は、より安全な接続方法を好む人のために公開鍵認証を提供します。この方法を使用して接続するには、コマンドは次のようになります。

ssh -i /path/to/private_key username@remote_server

このコマンドでは、「/path/to/private_key」を秘密鍵ファイルへのパスに置き換えます。同様に、「username」をユーザー名に、「remote_server」をリモート サーバーの IP アドレスまたはホスト名に置き換えます。この方法ではパスワード入力の必要がなくなり、代わりに提供された秘密鍵を使用して認証が行われます。

SSH 接続用の代替ポートの指定

SSH はデフォルトでポート 22 に接続しますが、一部のリモート サーバーは異なるポートで動作する場合があります。接続中に別のポートを指定するには、次を使用します。

ssh -p 2222 username@remote_server

この例では、「2222」をリモート サーバーが使用するポート番号に置き換えます。

SSH を使用した SCP による安全なファイル転送

SCP (Secure Copy) は、SSH 経由でシステム間でファイルを安全に転送する強力なコマンドライン ユーティリティです。ローカルの Rocky Linux システムからリモート サーバーにファイルを転送するには、次のコマンドを使用します。

scp /path/to/local/file username@remote_server:/path/to/remote/directory

「/path/to/local/file」を転送するファイル パスに置き換えます。同様に、「username」をユーザー名に、「remote_server」をリモート サーバーの IP アドレスまたはホスト名に、「/path/to/remote/directory」を転送したファイルを配置するリモート サーバー上のディレクトリ パスに調整します。

Rocky Linux で SSH を設定する

SSH 構成を最適化すると、サーバーのセキュリティとパフォーマンスが向上します。/etc/ssh/sshd_config にある SSH 構成ファイルには、特定のニーズに合わせて調整できるさまざまなパラメータが含まれています。次の構成は単なる例ですが、サーバーまたはデスクトップの設定によっては役立つ場合があります。

SSH の GSSAPI 認証を無効にする

GSSAPI 認証は便利ですが、SSH 接続の確立中に遅延が発生する場合があります。これを軽減するには、SSH 構成ファイルに次の行を追加して無効にします。

GSSAPIAuthentication no

SSH の SSH セッション タイムアウトの変更

セッション タイムアウトを調整すると、非アクティブな SSH セッションの管理に役立ちます。サーバーが 5 分ごとにキープアライブ メッセージを送信し、2 つのメッセージが連続して応答されない場合にセッションを終了するように設定するには、以下を追加します。

ClientAliveInterval 300
ClientAliveCountMax 2

SSH のルートログインを禁止する

特にブルートフォース攻撃に対するセキュリティを強化するには、ルート ログインを無効にすることをお勧めします。これは、次の方法で実現できます。

PermitRootLogin no

SSH の公開鍵認証の実装

公開鍵認証は、パスワードベースの方法よりも安全な代替手段を提供します。これを設定するには、まず新しい SSH キー ペアを生成する必要があります。

ssh-keygen -t rsa -b 4096

次に、公開キーを目的のリモート サーバーに転送します。

ssh-copy-id user@remote_server

「user」をユーザー名に、「remote_server」を適切な IP アドレスまたはホスト名に置き換えてください。最後に、SSH 構成で公開キー認証を有効にします。

PubkeyAuthentication yes

SSHのSSHアクセスを制限する

セキュリティを強化するために、特定のユーザーまたはグループへの SSH アクセスを制限できます。これを実装するには、以下を追加します。

AllowUsers user1 user2
AllowGroups group1 group2

プレースホルダーを、アクセスを許可する実際のユーザー名またはグループ名に置き換えます。

SSHのSSHポートの変更

SSH は、デフォルトではポート 22 で動作します。このポートは悪名高いため、このポートを変更すると不正アクセスの試みを阻止できます。新しいポートを割り当てるには、次のコマンドを使用します。

Port <port_number>

他のサービスによって使用されていない 1024 ~ 65535 のポート番号を選択することをお勧めします。

Firewalld による SSH のセキュリティ保護

VPS またはリモート サーバー環境で作業する場合、中断のないアクセスを確保します。Firewalld に変更を加える前に、特にシステムにリモートでアクセスしている場合は、IP アドレスをホワイトリストに登録する必要があります。そうしないと、ファイアウォールの変更を適用した後に、誤ってサーバーにアクセスできなくなる可能性があります。

Firewalld で IP アドレスをホワイトリストに登録するには、次のコマンドを使用します。

sudo firewall-cmd --permanent --add-source=<your_ip_address>

交換する実際の IP アドレスを入力します。

IP アドレスがホワイトリストに登録されると、SSH サービスを Firewalld に安全に組み込むことができます。

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

必要な調整を行った後、新しい Firewalld 設定を適用します。

sudo firewall-cmd --reload

Firewalld に SSH サービスが含まれていることを確認するには、次のコマンドを実行します。

sudo firewall-cmd --list-services | grep ssh

このコマンドは、SSH サービスがファイアウォール経由で適切に許可されているかどうかを確認し、リモート接続が安全かつアクセス可能であることを保証します。

結論

Rocky Linux システムに SSH が正常にインストールされ、構成されていると、サーバーをリモートで安全に管理できます。SSH 構成を定期的に更新し、セキュリティを維持するためのベスト プラクティスを適用してください。初期セットアップのヒントに従うことで、より安全で効率的なリモート管理エクスペリエンスが保証されます。安全なサーバー管理のために SSH が提供する強力な機能を活用してください。

Joshua James

コメントを残す