概要
Ubuntu で SSH 接続を有効にするための手順について説明します。 SSH 接続を使用すると、リモートマシンに安全にアクセスすることができます。
関連記事
SSH 接続を有効にする手順
1. SSH サーバーのインストール
Ubuntu では初期状態で SSH サーバーはインストールされていません。
まず、SSH サーバーである openssh-server
をインストールします。
2. SSH サーバーのステータスを確認
SSH サーバーが正しくインストールされた場合、ssh.service
が動作します。
サービスが動作しているか確認します。
active (running)
と表示されていれば、SSH サーバーが正常に動作しています。
もし起動していない場合、システム起動時に自動的に起動するように設定します。
3. SSH 接続の確認
別のコンピュータから SSH 接続を試みます。以下のコマンドを使用してリモートマシンに接続します。
username
は接続先のユーザー名、ip_address
は接続先の IP アドレスです。
SSH の設定ファイル
必要に応じて、SSH の設定ファイル /etc/ssh/sshd_config
を編集してカスタマイズできます。例えば、デフォルトのポート番号を変更したり、ルートログインを無効にするなどの設定が可能です。
変更を加えた後、SSH サーバーを再起動して設定を適用します。
SSH 接続に必要なパーミッションの設定方法
SSH の設定はデフォルトで StrictModes on
になっています。StrictModes
は、SSH (Secure Shell) の設定オプションの一つで、SSH サーバーのセキュリティ強化に関する設定です。このオプションは、SSH サーバーがユーザーのホームディレクトリと認証に使用されるファイル (例: ~/.ssh/authorized_keys
) のパーミッションをチェックし、必要なセキュリティポリシーを満たしていない場合に接続を拒否するかどうかを制御します。公開鍵認証を使用する場合、以下のディレクトリのパーミッションが適切に設定されているか確認してください。
ディレクトリまたはファイル | パーミッション |
---|---|
~ |
700 |
~/.ssh |
700 |
~/.ssh/authorized_keys |
600 |
以下のコマンドを実行して、適切なパーミッションを設定します:
この設定を行うことで、SSH 接続時のセキュリティが強化されます。
公開鍵認証によるログインを有効にする
1. [クライアント側] 公開鍵と秘密鍵のペアを作成する
まず、クライアント側で SSH キーを生成します。
-t rsa
: RSA アルゴリズムを使用-b 4096
: 鍵のビット数-C "your_email@example.com"
: キーのコメント (通常はメールアドレス)
このコマンドを実行すると、以下のような出力が表示されます:
デフォルトでは、鍵は ~/.ssh
ディレクトリに保存されます。プロンプトが表示されますが、すべて Enter を押下してデフォルトの設定を使用します。
- 秘密鍵:
~/.ssh/id_rsa
- 公開鍵:
~/.ssh/id_rsa.pub
2. [クライアント側] 公開鍵をサーバーにコピーする
次に、生成された公開鍵をサーバーにコピーします。
username
: サーバーのユーザー名hostname
: サーバーのホスト名または IP アドレス
プロンプトが表示されたら、サーバーのパスワードを入力します。
このコマンドは、クライアント側の ~/.ssh/id_rsa.pub
ファイルの内容をサーバー側の ~/.ssh/authorized_keys
ファイルに追加します。
3. [サーバー側] SSH 設定を確認・変更する
サーバー側の SSH 設定を確認し、必要に応じて変更します。
- サーバーに SSH でログインします。
- SSH 設定ファイル
/etc/ssh/sshd_config
を開きます。
- 以下の設定が有効になっていることを確認します。
- SSH サービスを再起動して設定を反映させます。
4. [サーバー側] ファイルのパーミッションの確認
公開鍵認証が正しく機能するためには、ファイルのパーミッションが適切に設定されている必要があります。
5. [クライアント側] 公開鍵認証でログインできるか確認する
パスワードの入力を求められずにログインできれば、公開鍵認証の設定は成功です。クライアント側に鍵が複数ある場合、-i
オプションで対応する鍵を指定します。
ログアウトする場合、logout
または exit
と入力するか、Ctrl + D
を押下します。
パスワード認証を無効にする
公開鍵認証が正しく機能していることを確認した後、パスワード認証を無効にする場合は、以下の設定を変更します。
設定を変更したら、SSH サービスを再起動して設定を反映させます。
これで、SSH 接続に必要な設定は完了です。
ECDSA key fingerprint
SSH で初めてリモートサーバーに接続する際に、以下のメッセージが表示されます。
これは、リモートサーバーのホストキーを確認し、接続先が信頼できるかどうかを判断するためのメッセージです。
ホストキーの確認に使用される ECDSA (Elliptic Curve Digital Signature Algorithm) key fingerprint は、公開鍵の一意な識別子を提供するために使用される短いハッシュ値です。一般的に、MD5 や SHA-256 などのハッシュ関数が使用されます。指紋は元の公開鍵に比べて短いため、簡単に表示および比較できます。これにより、公開鍵が改ざんされていないか確認する際に役立ちます。
yes
を入力してログインすると、クライアント側の ~/.ssh/known_hosts
にそのサーバーの fingerprint
が保存されます。
次回同じリモートサーバーにアクセスする際は、fingerprint
が一致するかどうか認証が行われます。
コメント