SSH 秘密鍵 + 公開鍵を作成して鍵認証にする

開発

puttyでSSHアクセスしているが、パスワード認証から鍵認証にしたい。

スポンサーリンク

認証鍵を生成

認証鍵の生成

まずrootに切り替え。

# su -

認証鍵を生成コマンド実行。

# ssh-keygen -t rsa

コマンド実行時に秘密鍵の保存場所を聞かれる。
デフォでよければEnter。任意の場所を指定したかれば続けて入力する。

Enter file in which to save the key (/root/.ssh/id_rsa):

パスフレーズの設定。
ここでのパスフレーズを省略すると、パスフレーズを省略してログインできる。
そのままEnterでスキップもできるが、設定しておいたほうがセキュリティ的にはいいのでここでは設定していく。

入力した場合、以下のように確認用に二度同じパスを聞かれる。

Enter passphrase (empty for no passphrase):
Enter same passphrase again

認証鍵の確認

/home/[user名]/.sshディレクトリに以下の秘密鍵と公開鍵が作られる。

もしくは/home/.sshを確認。

.pubのほうが公開鍵で、ついてないほうが秘密鍵となる。

# ls -l /root/.ssh
-rw------- 1 root root 1766 Sep 23 23:06 id_rsa
-rw-r--r-- 1 root root  416 Sep 23 23:06 id_rsa.pub

公開鍵を登録

公開鍵をauthorized_keysファイルに登録する。
authorized_keysは公開鍵を複数管理するファイルのため基本、追記とする。

# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

以下のようにしてしまうと上書きになってしまうので注意。

# cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

また、既存でauthorized_keysファイルがなければリネーム移動でもよい。

# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

パーミッションの変更

セキュリティ上、以下にパーミッションを変更しておく。

# chmod 600  ~/.ssh/authorized_keys

ログイン設定

公開鍵認証でログインできるようにsshd_configを変更する。

sshd_configの編集

PubkeyAuthenticationのコメントを外して保存。

# vi /etc/ssh/sshd_config

PubkeyAuthentication yes

sshd_configの反映

# service sshd restart

秘密鍵をローカルにダウンロード

WinSCP等を使用してリモートサーバから秘密鍵(id_rsa)をローカルの任意のdirにダウンロードする。

ppkの生成

ローカルにダウンロードした秘密鍵(id_rsa)をputtyで使用できる「ppk」という形に変換する。

今後、WinSCPなどで鍵認証する際はこの形式の秘密鍵が必要となる。
ppkはTera Termなどのターミナルでも利用可能。

秘密鍵をppk形式に変換

ppkという形に変換するには「puttygen」が必要となる。
puttyをダウンロードしていれば、同梱されているはずです。

putty.exeと同列にputtygen.exeがあるので実行してみましょう。

※自分の場合、インストールしたパッケージはApplicationに集約してます。

puttygenの操作

puttygenを実行すると以下のような画面が表示される。
「読込」を押下してローカルにダウントードした秘密鍵(id_rsa)を指定。

※もしid_rsaが表示されなければファイル選択画面で「全てのファイル(.)」を指定してあげればid_rsaが表示される。

次に、パスフレーズを求められるので設定したパスフレーズを入力する。
※パスフレーズを設定している場合のみ

インポート完了。

あとは秘密鍵を保存するだけ。

任意の名前で保存できるが、ここでは「id_rsa.ppk」とした。

puttyで接続

ここまできたらあとは生成したキーを使用してログインできるか確認するだけです。

赤線箇所をたどると、秘密鍵を使用した接続ができる。
ここでは、さきほど生成したppkファイルを指定する。

「開く」を押下でいつものコンソール画面に移り、秘密鍵を使用しての認証となる。

パスフレーズを設定していれば、設定したパスフレーズの入力が求められ、
パスフレーズを設定していなければ、そのままログインできる。


以上です!

タイトルとURLをコピーしました