第1章 2 つのシステム間での OpenSSH を使用したセキュアな通信の使用
OpenSSH を使用して、2 つのシステム間で安全な暗号化された通信チャネルを確立します。この方法は、リモートログインセッションの傍受や侵入を防ぐのに役立ちます。
1.1. SSH と OpenSSH リンクのコピーリンクがクリップボードにコピーされました!
SSH (Secure Shell) は、リモートマシンへのログインとコマンド実行を行うためのプログラムです。SSH プロトコルは、セキュアでないネットワーク上で、信頼されていない 2 つのホスト間で暗号化された通信を提供します。X11 接続と任意の TCP/IP ポートを、セキュアなチャネル経由で転送することもできます。
SSH プロトコルは、リモートシェルのログインやファイルコピー用に使用する場合に、システム間の通信の傍受や特定ホストの偽装など、セキュリティーの脅威を軽減します。これは、SSH クライアントとサーバーがデジタル署名を使用してそれぞれの ID を確認するためです。さらに、クライアントシステムとサーバーシステムとの間の通信はすべて暗号化されます。
ホストキーは、SSH プロトコルのホストを認証します。ホストキーは、OpenSSH が初めて起動したとき、またはホストが初めて起動したときに自動的に生成される暗号鍵です。
OpenSSH は、Linux、UNIX、および同様のオペレーティングシステムでサポートされている SSH プロトコルの実装です。OpenSSH クライアントとサーバー両方に必要なコアファイルが含まれます。OpenSSH スイートは、以下のユーザー空間ツールで構成されます。
-
sshは、リモートログインプログラム (SSH クライアント) です。 -
sshdは、OpenSSH SSH デーモンです。 -
scpは、セキュアなリモートファイルコピープログラムです。 -
sftpは、セキュアなファイル転送プログラムです。 -
ssh-agentは、秘密鍵をキャッシュする認証エージェントです。 -
ssh-addは、秘密鍵の ID をssh-agentに追加します。 -
ssh-keygenは、sshの認証鍵を生成、管理、変換します。 -
ssh-copy-idは、ローカルの公開鍵をリモート SSH サーバーのauthorized_keysファイルに追加するスクリプトです。 -
ssh-keyscan- SSH パブリックホストキーを収集します。
詳細は、システムで man -k ssh コマンドを使用すると表示される man ページを参照してください。
RHEL 9 以降では、Secure Copy Protocol (SCP) がデフォルトで SSH File Transfer Protocol (SFTP) に置き換えられます。これは、CVE-2020-15778 など、SCP が原因のセキュリティーの問題が発生しているためです。
SFTP が使用できないか互換性がない場合は、-O オプションを指定した scp コマンドを使用すると、元の SCP/RCP プロトコルの使用を強制できます。
詳細は、記事 OpenSSH SCP protocol deprecation in Red Hat Enterprise Linux 9 を参照してください。
RHEL の OpenSSH スイートは、SSH バージョン 2 のみをサポートします。このスイートは、旧バージョン (バージョン 1) の既知のエクスプロイトに対して脆弱ではない拡張キー交換アルゴリズムを備えています。
Red Hat Enterprise Linux には、openssh、openssh-server、および openssh-clients パッケージが含まれています。これらの OpenSSH パッケージには、OpenSSL パッケージ openssl-libs が必要です。このパッケージには、データ交換をセキュアに行うために必要な暗号化ライブラリーが含まれています。
RHEL のコア暗号化サブシステムの 1 つである OpenSSH は、システム全体の暗号化ポリシーを使用します。これにより、脆弱な暗号スイートと暗号化アルゴリズムが、デフォルトの設定で確実に無効になります。ポリシーを変更するには、管理者が update-crypto-policies コマンドを使用して設定を調整するか、システム全体の暗号化ポリシーを手動でオプトアウトする必要があります。詳細は、システム全体の暗号化ポリシーからアプリケーションを除外する セクションを参照してください。
OpenSSH スイートは、2 セットの設定ファイルを使用します。1 つはクライアントプログラム (つまり、ssh、scp、および sftp) 用で、もう 1 つはサーバー (sshd デーモン) 用です。
システム全体の SSH 設定情報が /etc/ssh/ ディレクトリーに保存されます。/etc/ssh/ssh_config ファイルには、クライアント設定が含まれています。/etc/ssh/sshd_config ファイルは、デフォルトの OpenSSH サーバー設定ファイルです。
ユーザー固有の SSH 設定情報は、ユーザーのホームディレクトリーの ~/.ssh/ に保存されます。OpenSSH 設定ファイルの詳細なリストは、システム上の sshd(8) の man ページの FILES セクションを参照してください。