• Japanese

MENU

共通認証システム 矢上キャンパス 慶應義塾公式ウェブサイト 慶應義塾の電力使用状況

サーバを公開鍵認証にしたい

[Q.]

サーバを公開鍵認証にしたい

[A.]

クライアント側での操作

  • 以下の 1,2 を実施後、4の手順にてログインします

サーバ側での操作

1. 秘密鍵・公開鍵のペアを作成する

こちらの手順は、ログイン元のローカルホストでの操作となります。以下、「鍵の名前」の部分は適宜読み替えていただくようお願いします。

a. Windows OS の場合

ここではPuTTYを利用した鍵生成の手順を紹介します。

  1. PuTTYgenを起動します
  2. Parameters に ECDSA を選択し、Actions の Generate をクリックします。

    指示の通りに空白のエリアでマウスを動かします。
    • このページではECDSAを推奨していますが、ソフトウェアのアップデートの有無などによってはECDSAに対応していないことがあります。ECDSAで鍵を作成し、公開鍵認証に失敗するという場合には、RSAによる暗号化をお試しください。
  3. Keyが生成されたら Key passphrase: 欄と Confirm passphrase: 欄にパスワードを入力し、Actions の Save public key と Save private key ボタンを押して公開鍵と秘密鍵を保存します。秘密鍵は'鍵の名前', 公開鍵は'鍵の名前.pub'という名前で保存します。

    鍵の名前・保存場所は任意の場所で構いません。ただし、秘密鍵ファイルは外部に漏洩すると不正ログインに利用されるので、大切に保管してください。

b. Mac OS, Linux OS の場合

  1. ホームディレクトリ下の.sshディレクトリに移動します。
    $ cd ~/.ssh
    
    • .sshディレクトリがない場合は作成します。
      $ mkdir ~/.ssh
      $ chmod 700 ~./ssh
      $ cd ~/.ssh
      
  2. ECDSAによる暗号化で鍵のペアを生成します。
    $ ssh-keygen -t ecdsa -f 鍵の名前
    Generating public/private ecdsa key pair.
    Enter passphrase (empty for no passphrase):
    
    • このページではECDSAを推奨していますが、ソフトウェアのアップデートの有無などによってはECDSAに対応していないことがあります。ECDSAで鍵を作成し、公開鍵認証に失敗するという場合には、RSAによる暗号化をお試しください。
      $ ssh-keygen -t rsa -f 鍵の名前
      
  3. 鍵にパスフレーズを入力します。
    Enter passphrase (empty for no passphrase): xxxxxxxx
    
  4. '鍵の名前'という秘密鍵ファイルと'鍵の名前.pub'という公開鍵ファイルが作成されていることをご確認ください。秘密鍵ファイルは外部に漏洩すると不正ログインに利用されるので、大切に保管してください。

2. 公開鍵を管理者に送信する

公開鍵は外部に見られても安全なファイルです。

メールなどを利用してサーバの管理者に'鍵の名前.pub'ファイルを送信します。

3. 公開鍵をサーバに登録する

以下はログインする先のリモートホストでの操作となります。
  1. クライアントから'鍵の名前.pub'を受け取ります。
  2. クライアントのホームディレクトリ下の.sshディレクトリに移動します
    $ cd クライアントのホームディレクトリ/.ssh
    
  3. 公開鍵ファイルである'鍵の名前.pub'を公開鍵認証に用いる公開鍵として登録します。
    $ cat 鍵の名前.pub >> authorized_keys
    $ chmod 600 authorized_keys
    

4. 秘密鍵を使ってサーバにログインする

a. Windows OS の場合

ここではPuTTYを利用したログイン手順を紹介します。

  1. Connection > SSH > Auth と移動し、Brouse をクリックし、上で作成した秘密鍵'鍵の名前'を選択します。

  2. Session と移動し、Save ボタンでこの設定を保存しておくと次回以降の接続が簡単になります。

b. Mac OS, Linux OS の場合

  1. sshコマンドを使用する際に-iオプションで秘密鍵のパスを指定します。
    $ ssh -i ~/.ssh/鍵の名前 ログインするサーバ
    

最終更新日: 2020年3月26日

内容はここまでです。