この記事は「さくらのVPS導入解説 その5」の続きです。
前回まではSSHでのログインにはすべてパスワード認証を使ってきました。今回はこれをよりセキュアな公開鍵認証へと切り替えます。
公開鍵認証とは
公開鍵認証とは、公開鍵と秘密鍵という二つの鍵を利用して認証を行う方法です。
詳しくは暗号化技術の話になるので割愛しますが、簡単に言うと、公開鍵という名前の通り全世界に公開されても構わない鍵をサーバーに置いておきます。一方で秘密鍵という鍵をローカルマシンに保存しておき、この鍵は絶対に他人に漏れないようにします。
こうして公開鍵と秘密鍵という二種類の鍵を最初から別々においておくことで、暗号の鍵をインターネットを介して送信するということが不要になり、鍵が途中で盗まれるという危険もなくなる、というわけです。
公開鍵および秘密鍵の作成
ではまず公開鍵と秘密鍵を作成します。
- Poderosaのメニューバー「ツール」→「SSH鍵作成ウィザード」をクリックします。
- 「SSH鍵作成ウィザード」ダイアログが表示されるので、「アルゴリズム」は「RSA」、「ビット数」は「2048」(数字が大きいほど暗号強度が強いです)にします。
- 「パスフレーズ」は鍵が漏洩した際の万が一の保険として設定しておきます。(このパスフレーズは自分で考えて設定します)
- 「次へ」をクリックします。
- マウスをランダムに動かすことで乱数を発生させますので、ウィンドウ内でぐりぐりと適当に動かします。
- しばらくすると鍵の生成が完了します。「次へ」をクリックし、「秘密鍵を名前をつけて保存」をクリックして秘密鍵をわかりやすい場所に保存しておきます。
- なお、秘密鍵には日本語名は使えませんが、名前そのものはとくにどんな名前でもかまいません。(慣例としてid_rsa.ppkとすることも多いようです)
- 次に「OpenSSH形式で公開鍵を名前をつけて保存」をクリックし、公開鍵を「authorized_keys」という名前でこちらもわかりやすい場所に保存しておきます。
- 公開鍵の名前は必ず「authorized_keys」にします。また保存する際に拡張子.pubをつけないように注意してください。
これで秘密鍵および公開鍵が保存されました。
公開鍵を保存するディレクトリを作成する
秘密鍵はローカルにおいておくものですのでこれでOKですが、公開鍵に関してはサーバー上にアップする必要があります。またアップするためのディレクトリも事前に用意しておかなければいけません。
- Poderosaを使ってVPSにログインします。
- なお、このとき必ず前回作った通常ユーザーでログインするようにしてください。というのも、この通常ユーザーの認証のために公開鍵を使うからです。
- ログインしたら、まず公開鍵を置いておくためのディレクトリを作ります。
公開鍵は、$HOMEという基本となるディレクトリの直下に「.ssh」というディレクトリを作ってそこに置きます。 - まずディレクトリを移動するための「cd」コマンドを使って$HOMEに移動します。
$ cd $HOME
- 次にディレクトリを作成する「mkdir」コマンドを使って、「.ssh」ディレクトリを作成します。
$ mkdir .ssh
これで.sshディレクトリが作成されました。
パーミッションの設定
作成したディレクトリにはさらにパーミッションを設定しておく必要があります。今回は自分のみ読み・書き・実行ができる700にパーミッションを設定します。
パーミッションの設定にもやはりコマンドが用意されており「chmod」というコマンドです。
「chmod パーミッション 対象ファイル/ディレクトリ」という形で指定します。
$ chmod 700 .ssh
これでパーミッションの設定も完了です。
次回は公開鍵を実際にサーバー上に送り、さらに認証方法を公開鍵認証のみに変更します。