0Pricing
Linux Server Deployment & SSH Mastery · レッスン

SSH鍵ベース認証

SSH鍵ペアを生成し、公開鍵をサーバーへ配置して、セキュリティを高めるためにパスワード認証を無効化します。

「SSH鍵ベース認証」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

鍵ペアで SSH の可能性を広げる

ようこそ。このレッスンでは、SSH 鍵ベース認証について学びます。この方法は、従来のパスワードを使ってサーバーにログインするよりも、はるかに安全で便利です。

SSH 鍵はデジタル上の握手のように機能し、毎回パスワードを入力しなくても本人確認を行えます。

公開鍵と秘密鍵の仕組み

SSH 鍵認証では、暗号鍵のペアを使用します。

  • 秘密鍵:ローカルマシンに保存し、秘密にしておく必要がある鍵です。デジタルロック専用の唯一の鍵だと考えてください。
  • 公開鍵:アクセスしたいサーバーに配置する鍵です。秘密鍵でしか開けられない特殊なロックのようなものです。

接続しようとすると、サーバーがクライアントにチャレンジを送り、クライアントは秘密鍵を使って自分の身元を証明します。

SSH 鍵を生成する

ローカルマシンで ssh-keygen コマンドを使うと、SSH 鍵ペアを生成できます。デフォルトでは RSA 鍵ペアが作成されます。

プロンプトが表示されたら、秘密鍵を保護するパスフレーズを設定できます。これによりセキュリティがさらに強化され、鍵を使用する前にパスフレーズの入力が必要になります。

ssh-keygen

鍵生成をカスタマイズする

セキュリティを強化するには、ED25519 などの新しい鍵タイプを使用することをおすすめします。鍵のファイル名をカスタマイズすることもできます。

  • -t ed25519:ED25519 アルゴリズムを指定します。
  • -f ~/.ssh/my_server_key:my_server_key と my_server_key.pub という名前のファイルを作成します。

秘密鍵には必ず強力なパスフレーズを設定してください。

ssh-keygen -t ed25519 -f ~/.ssh/my_server_key

鍵ファイルを理解する

生成した鍵は通常、ローカルマシンの ~/.ssh/ ディレクトリに保存されます。次の 2 つのファイルが作成されます。

  • id_ed25519(または id_rsa):これは秘密鍵です。厳重に管理し、決して共有しないでください。
  • id_ed25519.pub(または id_rsa.pub):これは公開鍵です。このファイルをサーバーにコピーします。

これらのファイルの権限も、セキュリティ上とても重要です。

公開鍵を簡単に配置する

公開鍵をサーバーに配置する最も簡単な方法は、ssh-copy-id コマンドを使うことです。このコマンドは公開鍵をサーバーの ~/.ssh/authorized_keys ファイルに安全にコピーします。

新しいサーバーでこのコマンドを初めて実行するときは、パスワードの入力が必要です。その後は、パスワードでのログインが不要になることが多いです。

ssh-copy-id user@your_server_ip

公開鍵を手動で配置する

ssh-copy-id を利用できない場合や、手動での方法を使いたい場合は、自分で公開鍵をサーバーにコピーできます。

まず、サーバー上に ~/.ssh ディレクトリが存在し、適切な権限(700)になっていることを確認します。次に、公開鍵を ~/.ssh/authorized_keys ファイルに追記し、権限を 600 に設定します。

cat ~/.ssh/id_ed25519.pub | ssh user@your_server_ip \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

新しい鍵で接続する

公開鍵をサーバーに配置したら、SSH で接続できます。デフォルトの鍵名(例:id_rsa や id_ed25519)を使用した場合、SSH が自動的に鍵を見つけます。

カスタムの鍵名(例:my_server_key)を使用した場合は、-i フラグで鍵を指定する必要があります。

ssh -i ~/.ssh/my_server_key user@your_server_ip

セキュリティのためにパスワードログインを無効にする

セキュリティを強化するため、鍵ベースのログインが機能することを確認したら、サーバーでのパスワード認証を無効にすることを強くおすすめします。

サーバー上の SSH デーモン設定ファイル(/etc/ssh/sshd_config)を編集し、PasswordAuthentication yes を no に変更して、SSH サービスを再起動します(例:sudo systemctl restart sshd または sudo service ssh restart)。

# On the server, edit /etc/ssh/sshd_config
PasswordAuthentication no
# Then restart SSH service
sudo systemctl restart sshd

鍵認証チェック

SSH 鍵ベース認証の仕組み、鍵の生成方法、鍵の配置方法を学びました。理解度を確認してみましょう。

まとめ:鍵で SSH を安全にする

よくできました。SSH 鍵ベース認証を習得しました。次のことを学びました。

  • 公開鍵と秘密鍵の違い。
  • ssh-keygen を使った鍵ペアの生成方法。
  • ssh-copy-id または手動でサーバーに公開鍵を配置する方法。
  • パスワードを使わずに安全に接続する方法。
  • サーバーでパスワード認証を無効にする理由と方法。

SSH 鍵は、安全で効率的なサーバー管理に欠かせない基本ツールです。練習を続けていきましょう。

よくある質問

「SSH鍵ベース認証」レッスンは無料ですか?

はい。「SSH鍵ベース認証」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

「SSH鍵ベース認証」で何を学びますか?

SSH鍵ペアを生成し、公開鍵をサーバーへ配置して、セキュリティを高めるためにパスワード認証を無効化します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「SSH鍵ベース認証」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. SSHプロトコルを理解する
  2. SSHクライアントの設定
  3. SSH鍵ベース認証
  4. SSHサーバーの堅牢化
← Linux Server Deployment & SSH Masteryに戻る