こんにちは!中の人です。
今回は『EC2(Linux)への公開鍵設定を行う方法編』と題して、公開鍵未設定のEC2(Linux)に対して公開鍵認証方式にする方法を紹介します。
公開鍵を設定しないで構築したEC2やローカル環境のサーバにも同じ設定をすることが出来ます。
1. 公開鍵認証するユーザーでログインします。
2. ssh-keygenコマンドでキーを生成します。
1 2 3 4 5 |
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: |
ssh-keygen –t 鍵の種類
Enter file in which to save the key キーの保存先を指定
Enter passphrase キー用のパスフレーズ:短いと蹴られます
上記を実行すると2つのファイルが生成されます。
id_rsa:秘密鍵
id_rsa.pub:公開鍵
.pub(public)が公開鍵となります。
3. 公開鍵をauthorized_keysに登録し、パーミッションの設定をします。
1 2 |
$ cat id_rsa.pub >> ~/.ssh/authorized_key $ chmod 600 ~/.ssh/authorized_key |
※/homeは755である必要があります。
4. id_rsaファイルをローカルに保存します。
なお、文字列通りであれば問題ないので、cat等で取得して、WindowsやMac上のメモ帳に貼り付けて保存でも問題ありません。
[ホスト名].pem
のようなわかりやすい名称で保管しましょう。
5. sshd_configの公開鍵設定を変更してsshdを再起動します。
1 2 3 4 5 |
$ sudo vi /etc/ssh/sshd_config PubkeyAuthentication no ↓ PubkeyAuthentication yes $ sudo /etc/rc.d/init.d/sshd restart |
なお、この時には万が一ログインできなくなってしまうことも考え、PasswordAuthenticationは変更しないことをオススメします。
6. 早速、EC2に対してログインしてみます。
キーを指定し、パスフレーズを入力することでログイン出来る事が確認できます。
※念の為、5までを行っているセッションは切断せずに残しておきましょう。
◯Puttyをつかった公開鍵認証接続 http://recipe.kc-cloud.jp/archives/25
7. ログイン出来る事が確認できたら、PasswordAuthenticationの設定を変更します。
1 2 3 4 5 |
$ sudo vi /etc/ssh/sshd_config PasswordAuthentication yes ↓ PasswordAuthentication no $ sudo /etc/rc.d/init.d/sshd restart |
8. 設定が完了したら、パスワードでログインしてみましょう。
putty側は強制的に切断され、secureログにも「Disconnected: No supported authentication methods available」というメッセージが出力されます。
いかがでしたでしょうか?
万が一失敗してしまうとログインできなくなってしまいますが、上記のように確認しながら行うことでログインできなくなってしまうリスクを防ぐことが出来ます。
いかがでしたでしょうか?
次回もお楽しみに!!