PuTTYgenを使って公開鍵と秘密鍵を作成する

CentOSにログインするには、現在は鍵認証が一般的になりつつあります。鍵認証のメリットは以下の二つになります。

  • 鍵を登録すれば登録したマシンにログインできる
  • パスワード認証よりセキュア

こんな感じかなと思います。肝心の鍵の作り方は?と思いますが主に二通り

  • CentOSなどサーバー側で作成する
  • Mac、Winなどのクライアント側で作成

今回はクライアント側(Win)で作成してそれを使っていくようにしたいと思います。

なんでクライアント側(Win)?

MacとCentOSなどは作り方は同じのためになります。今回はコマンドを使うのでは無くツールを使ってユーザーを作っていきます

PuTTYgenを使って鍵作成

なぜPuTTYgen?

普段僕がSSHのクライアントで使っているのがPuTTYになるからです。それ以外つかった事ないので他のソフトでの使い方は知りません。PuTTYの正規名称はパティらしいですが日本語ではプッティ、プティと呼ばれることが多いです。僕もプティと呼んでました。

秘密鍵、公開鍵を作ってログインするまで

今回はPuTTYgenを使って鍵を作り、無事CentOSにログインできるようにします。尚、CentOS側では事前にユーザーがいることにします。今回はmacanというユーザーになりますPuttyはダウンロードしておいてください。僕はPuTTYjpからダウンロードして使っております

ダウンロードしたフォルダを開く

ダウンロードするとこんな感じでフォルダの中には色々入っております。

PuTTYgenをクリック

PuTTYgenアイコンをクリックして立ち上げます

Generate(赤枠の箇所)をクリックします

赤枠の箇所をマウスでぐるぐるすると緑ゲージが貯まっていくので貯まるまで動かします

こんな感じで何か出来ました。

公開鍵をコピーする

赤枠の「Public key for pasting into OpenSSH authorized_keys file」に表示されているものが公開鍵の文字列です。key_commentは作成した日付がデフォルトで入っています。この文字列をコピーしてさくらエディタなどのテキストエディタにコピーします

こんな感じでテキストエディタにコピーして保存します。ファイル名はここではなんでも良いです。ここではmacan.txtとしました

秘密鍵を作成

今度は秘密鍵を作成します。

赤枠のSave private keyを押します。ファイル名は適当でOKです拡張子「.ppk」というのがつきます。ここではmaca.ppkとしました。今回作ったのは秘密鍵の元となるファイルです

Loadを押してファイルを読み込む

先ほど作成したmacan.ppkを読み込みます。読み込んでも特に画面に変化はありません

秘密鍵を作成

メニューの「Conversions」→「Export OpenSSH key」で秘密鍵を作成します。ファイル名はmacan_id_rsaとしました

これで公開鍵と秘密鍵が揃いました。CentOS側に登録したいと思います

公開鍵の登録をする

まずはCentOSにログインしてください。VPSなどは専用のコントロールパネルとか、別のユーザーから該当ユーザーになる。パスワード認証など方法は自由です。ここではmacanユーザーでログインします

CentOSにログイン

CentOSにmacaユーザーログインしています。ホームディレクトリにいます

[macan@localhost ~]$ pwd
/home/macan
[macan@localhost ~]$

鍵登録をしていきます

公開鍵の追加

まずは公開鍵の登録をしていきます。鍵はFTP、SCPでの転送とか色々ありますが今回はシンプルにコピー&ペーストにします。ここからはコマンドでやっていきます

[macan@localhost ~]$ ls -all
合計 20
drwxr-xr-x  2 macan macan 4096  6月 19 13:22 .
drwxr-xr-x. 5 root  root  4096  6月 19 13:22 ..
-rw-r--r--  1 macan macan   18  6月 19 13:22 .bash_logout
-rw-r--r--  1 macan macan  193  6月 19 13:22 .bash_profile
-rw-r--r--  1 macan macan  231  6月 19 13:22 .bashrc
[macan@localhost ~]$

まずは.sshディレクトリを作成します

[macan@localhost ~]$ mkdir .ssh
[macan@localhost ~]$ ls -all
合計 24
drwxr-xr-x  3 macan macan 4096  6月 19 13:36 .
drwxr-xr-x. 5 root  root  4096  6月 19 13:22 ..
-rw-r--r--  1 macan macan   18  6月 19 13:22 .bash_logout
-rw-r--r--  1 macan macan  193  6月 19 13:22 .bash_profile
-rw-r--r--  1 macan macan  231  6月 19 13:22 .bashrc
drwxrwxr-x  2 macan macan 4096  6月 19 13:36 .ssh
[macan@localhost ~]$ chmod 700 .ssh

作成しました。公開鍵を登録します。パーミッションを変更しないとエラーとなるので必ずしてください

[macan@localhost ~]$ vi .ssh/authorized_keys
macan.txtの中身を貼り付ける
[macan@localhost ~]$ chmod 600 .ssh/authorized_keys

これにて公開鍵の登録は終わりです。ここでもパーミッションを変更しないとエラーとなります

ログインをしてみる

PuTTYを使ってログイン

今回は実験なので、デスクトップに保存しておいてputty-0.70-jp20170713の中にkeyフォルダを作り、そこに秘密鍵をいれますputtyなので秘密鍵はppkのほうを使います

\Desktop\putty-0.70-jp20170713\key
macan.ppk
macan_id_rsa

こんな感じで2種類一応いれておきました。使うのは一つだけです

PuTTYを起動

puttyjpをクリックして起動します

ホスト名にIPアドレスかホスト名を入力します。

接続 > SSH > 認証を出し、認証の項目でキーファイルを登録します

ログイン成功

ログインに成功すると、macanユーザーで鍵認証成功したことになります。画像が文字化けしているのは、PuTTYはデフォルト文字コードがEUC-JPで接続しているためになります。CentOSはUTF-8なので文字化け起きております。接続するとき文字コードをUTF-8にすれば文字化けはおきません