Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
「さくらのVPS」導入解説 その6:公開鍵認証の設定(前編) | Sabakura Blog

「さくらのVPS」導入解説 その6:公開鍵認証の設定(前編)

この記事は「さくらのVPS導入解説 その5」の続きです。

前回まではSSHでのログインにはすべてパスワード認証を使ってきました。今回はこれをよりセキュアな公開鍵認証へと切り替えます。

公開鍵認証とは

公開鍵認証とは、公開鍵と秘密鍵という二つの鍵を利用して認証を行う方法です。

詳しくは暗号化技術の話になるので割愛しますが、簡単に言うと、公開鍵という名前の通り全世界に公開されても構わない鍵をサーバーに置いておきます。一方で秘密鍵という鍵をローカルマシンに保存しておき、この鍵は絶対に他人に漏れないようにします。

こうして公開鍵と秘密鍵という二種類の鍵を最初から別々においておくことで、暗号の鍵をインターネットを介して送信するということが不要になり、鍵が途中で盗まれるという危険もなくなる、というわけです。

公開鍵および秘密鍵の作成

ではまず公開鍵と秘密鍵を作成します。

  1. Poderosaのメニューバー「ツール」→「SSH鍵作成ウィザード」をクリックします。
  2. 「SSH鍵作成ウィザード」ダイアログが表示されるので、「アルゴリズム」は「RSA」、「ビット数」は「2048」(数字が大きいほど暗号強度が強いです)にします。
  3. 「パスフレーズ」は鍵が漏洩した際の万が一の保険として設定しておきます。(このパスフレーズは自分で考えて設定します)
  4. 「次へ」をクリックします。
    鍵生成
  5. マウスをランダムに動かすことで乱数を発生させますので、ウィンドウ内でぐりぐりと適当に動かします。
    鍵作成のための乱数生成
  6. しばらくすると鍵の生成が完了します。「次へ」をクリックし、「秘密鍵を名前をつけて保存」をクリックして秘密鍵をわかりやすい場所に保存しておきます。
    • なお、秘密鍵には日本語名は使えませんが、名前そのものはとくにどんな名前でもかまいません。(慣例としてid_rsa.ppkとすることも多いようです)
  7. 次に「OpenSSH形式で公開鍵を名前をつけて保存」をクリックし、公開鍵を「authorized_keys」という名前でこちらもわかりやすい場所に保存しておきます。
    • 公開鍵の名前は必ず「authorized_keys」にします。また保存する際に拡張子.pubをつけないように注意してください。

これで秘密鍵および公開鍵が保存されました。

公開鍵を保存するディレクトリを作成する

秘密鍵はローカルにおいておくものですのでこれでOKですが、公開鍵に関してはサーバー上にアップする必要があります。またアップするためのディレクトリも事前に用意しておかなければいけません。

  1. Poderosaを使ってVPSにログインします。
    • なお、このとき必ず前回作った通常ユーザーでログインするようにしてください。というのも、この通常ユーザーの認証のために公開鍵を使うからです。
  2. ログインしたら、まず公開鍵を置いておくためのディレクトリを作ります。
    公開鍵は、$HOMEという基本となるディレクトリの直下に「.ssh」というディレクトリを作ってそこに置きます。
  3. まずディレクトリを移動するための「cd」コマンドを使って$HOMEに移動します。
    $ cd $HOME
    
  4. 次にディレクトリを作成する「mkdir」コマンドを使って、「.ssh」ディレクトリを作成します。
    $ mkdir .ssh
    

これで.sshディレクトリが作成されました。

パーミッションの設定

作成したディレクトリにはさらにパーミッションを設定しておく必要があります。今回は自分のみ読み・書き・実行ができる700にパーミッションを設定します。

パーミッションの設定にもやはりコマンドが用意されており「chmod」というコマンドです。
「chmod パーミッション 対象ファイル/ディレクトリ」という形で指定します。

$ chmod 700 .ssh

これでパーミッションの設定も完了です。

次回は公開鍵を実際にサーバー上に送り、さらに認証方法を公開鍵認証のみに変更します。