公開鍵認証でサーバにログインする方法(サーバで鍵生成)

公開鍵認証でサーバにログインする方法(サーバで鍵生成)

Posted at January 11,2013 1:55 AM
Tag:[RSA, SSH, VPS]

公開鍵認証でサーバにログインする方法(サーバで鍵生成)を紹介します。

ここではさくらインターネットを使い、サーバ上で鍵を生成し、「UTF-8 TeraTerm Pro with TTSSH2」でログインする手順で解説します。

1.サーバで公開鍵と秘密鍵を生成

まず「UTF-8 TeraTerm Pro with TTSSH2」で、通常のパスワードを使ったログインを行います。

次に公開鍵を保存するための.sshディレクトリをホームディレクトリに作成し、パーミッションを「700」にします。すでにディレクトリがある場合はパーミッションのみ確認し、必要に応じて変更してください。

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

「ssh-keygen」コマンドでSSH用の公開鍵と秘密鍵を生成します。

$ cd ~/.ssh
$ ssh-keygen -C コメント

コメントの部分は任意の文字列を設定します。「-C コメント」を省略しても大丈夫です。省略した場合、サーバに設定されているメールアドレスがコメントとして設定されます。

実行すると次のような画面が表示されます。対話式の部分は赤色で示した作業を行ってください。

$ ssh-keygen -C foo@hoge.com
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ←リターン
Enter passphrase (empty for no passphrase): ←パスフレーズを入力
Enter same passphrase again: ←パスフレーズを再入力
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx foo@hoge.com
The key's randomart image is:
+--[ RSA 2048]----+
(略)
+-----------------+

これでssh-keygenを実行したディレクトリに、公開鍵の「id_rsa.pub」と秘密鍵の「id_rsa」が出来上がります。

公開鍵と秘密鍵

2.公開鍵保存ファイルを作成

公開鍵「id_rsa.pub」を「authorized_keys」にリネームし、パーミッションを「600」に変更します。作業は前項と同じ、.sshディレクトリで実施してください。

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

「authorized_keys」には複数の公開鍵を保存できます。2つ目以降の鍵は次のように、catコマンドを使ってファイルの行末に追加してください。

$ cat id_rsa.pub >> authorized_keys

3.秘密鍵ファイルを作成

秘密鍵のid_rsaをlessコマンドで表示させます。

$ less id_rsa

表示された内容を、下のスクリーンショットのように丸ごとマウスコピーします(選択するだけでコピーされるのでCtrl+cなどの操作は不要)。実験したのはWindowsですが、文字コードはShift_JIS、改行コードはCR+LFで大丈夫です。

秘密鍵

コピーした内容をローカルPC上のテキストエディタにペーストし、同じファイル名「id_rsa」で保存します。

注:ここではVPSの初期状態(FTPクライアントが使えない状態)を想定して説明していますが、FTPクライアントが利用可能であれば、ファイルをローカルPCにダウンロードしても大丈夫です。

4.公開鍵による認証でログイン

元の画面はそのままにして、「UTF-8 TeraTerm Pro with TTSSH2」でログインします。

ユーザー・パスフレーズ(ssh-keygenのときのパスフレーズ)を入力し、「RSA/DSA鍵を使う」を選択して、「秘密鍵」をクリックして、さきほど保存した秘密鍵を選択して「OK」をクリックします。

ログイン

これでログインできれば成功です。

5.ファイルの削除

サーバ上に残った秘密鍵id_rsaは不要なので削除しておきましょう。

6.その他

公開鍵認証だけでサーバにログインできるように変更するには、root権限で/etc/ssh/sshd_configを編集し、sshdを再起動する必要がありますが、ここでは説明を割愛します。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)