SSHの使い方

1.公開鍵と秘密鍵とは?

秘密鍵と公開鍵は、公開鍵暗号方式の2つの主要なコンポーネントです。
この方式は、安全な通信のために広く利用されています。以下に、それぞれの鍵について簡単に説明します。

公開鍵

  • 公開鍵は、文字通り公開される鍵です。誰でもこの鍵を使用してメッセージを暗号化することができますが、そのメッセージを復号できるのは秘密鍵を持っている受信者だけです。
  • 公開鍵は、デジタル署名の作成にも使用されます。この場合、メッセージの送信者は自分の秘密鍵を使用してメッセージに署名し、受信者は送信者の公開鍵を使用してその署名を検証します。

秘密鍵

  • 秘密鍵は、公開鍵と対をなす鍵であり、秘密に保たれます。この鍵は、公開鍵によって暗号化されたメッセージを復号するために使用されます。
  • 秘密鍵は、デジタル署名の作成にも使われます。この場合、メッセージの真正性と送信者の身元を確認するために重要です。

公開鍵暗号方式の特徴

  • 非対称暗号方式:公開鍵と秘密鍵は数学的に関連していますが、公開鍵から秘密鍵を導き出すことは計算上実行不可能です。
  • セキュリティ:秘密鍵は絶対に公開されず、持ち主だけがアクセスできます。これにより、通信の安全性が保たれます。
  • 多用途性:暗号化とデジタル署名の両方に使用され、データの機密性と完全性、送信者の認証を保証します。

秘密鍵と公開鍵は、公開鍵暗号化(非対称暗号化)システムにおける2つの主要な要素です。このシステムでは、2つの異なる鍵が使用されます:一つは公開鍵で、もう一つは秘密鍵です。これらの鍵は数学的に関連しており、一方の鍵で暗号化されたデータはもう一方の鍵でのみ復号化することができます。以下に、それぞれの鍵の特徴と使用方法について詳しく説明します。

2. 秘密鍵と公開鍵の生成

必要なツール

  • SSHキーを生成するためには、ssh-keygenコマンドを使用します。
    これはほとんどのLinux、macOSシステムに標準でインストールされています。
    Windowsでは、Git BashやWSL (Windows Subsystem for Linux) を使用することでssh-keygenが利用できます。

手順

  1. ターミナルを開く: LinuxやmacOSでは標準のターミナルアプリを、WindowsではGit BashやWSLを開きます。
  2. 鍵を生成する: 以下のコマンドを実行します。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ここで、
-tは鍵の種類(ここではrsa)、
-bは鍵のビット数(ここでは4096)、
-Cは鍵に関連付けるコメント(通常はメールアドレス)です。

3. 保存先とパスフレーズの入力: コマンドを実行すると、
鍵の保存先(デフォルトは~/.ssh/id_rsa)と、オプションで鍵を保護するためのパスフレーズを入力するよう求められます。

結果

  • 秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されます。秘密鍵は決して他人に渡さないでください。

C:\Users\ユーザー名\.ssh

3. 公開鍵の登録

公開鍵は、SSH接続を受け入れるサーバーに登録する必要があります。例として、GitHubに公開鍵を登録する方法を説明します。

  1. 公開鍵をクリップボードにコピーする:
    • macOS: pbcopy < ~/.ssh/id_rsa.pub
    • Linux: xclip -sel clip < ~/.ssh/id_rsa.pub
    • Windows (Git Bash): cat ~/.ssh/id_rsa.pub | clip
  2. GitHubにログインし、設定に移動する:
    • 右上のプロフィールアイコンから「Settings」に移動します。
  3. SSH and GPG keysを選択し、「New SSH key」をクリック:
    • タイトルにわかりやすい名前を入力し、Keyフィールドに公開鍵をペーストします。
  4. 「Add SSH key」をクリックして登録完了

4. 鍵の試験

SSH接続を試して、設定が正しく完了していることを確認します。GitHubの場合、以下のコマンドを使用してテストできます。

成功すれば、GitHubからあなたのユーザー名で認識されたメッセージが表示されます。

これで、秘密鍵と公開鍵の生成から登録、そして試験までのプロセスが完了しました。SSHキーを利用することで、パスワードなしで安全にリモートサーバーへの接続が可能になります。

ssh -T git@github.com

Bio

田端厚賢

名前:田端厚賢(Atsuyoshi Tabata)

WordPressを中心に企業様から委託を受けてサイトやサーバーの保守・管理、システム開発を行っています。

2024年4月より東大の松尾研でLLLMの開発プロジェクトに参加しています。

プロフィール詳細
Web制作依頼の詳細
お問い合わせはコチラ