AmazonLinuxにログイン可能な鍵ペアを追加したい

富松広太 2018年3月29日

こんにちは。TAFです。

AWSでは、AmazonLinuxは鍵認証を利用するのが一般的です。
サーバ構築時に鍵ファイルを1つ指定し、基本はそれをずっと利用し続けるのですが、
利用者の用途によっては、鍵ファイルを追加し、複数ファイルで使い分けたい等の要望があるかと思います。
今回は、その時の一般的な手順を下記にまとめてみました。

接続元(クライアント)の作業

(1)作業前確認

確認接続ユーザの鍵ペア(id_rsa、id_rsa.pub等のファイル)が存在しないことを確認

ls -lh /home/ec2-user/.ssh/*
-rw——- 1 ec2-user ec2-user 399 12月 4 11:02 /home/ec2-user/.ssh/authorized_keys
-rw-r–r– 1 ec2-user ec2-user 222 12月 4 18:48 /home/ec2-user/.ssh/known_hosts

(2)秘密鍵・公開鍵のペアを作成

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)
Enter same passphrase again: ⬅︎パスワード再入力(パスワードなしの場合はそのままEnter)
Your identification has been saved in /home/ec2-user/.ssh/id_rsa. ⬅︎秘密鍵ファイルが左記に作成された
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.  ⬅︎公開鍵ファイルが左記に作成された
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx ec2-user@ip-172-30-4-110
The key’s randomart image is:
—[RSA 2048]—-+
|….+o….o.+.o. |
| . =.*.+ =.= o |
—-[SHA256]—–+

(3)秘密鍵・公開鍵のペアが作成されていることを確認

ls -lh /home/ec2-user/.ssh/*
-rw——- 1 ec2-user ec2-user 399 12月 4 11:02 /home/ec2-user/.ssh/authorized_keys
-rw——- 1 ec2-user ec2-user 1.7K 12月 6 11:17 /home/ec2-user/.ssh/id_rsa ⬅︎秘密鍵
-rw-r–r– 1 ec2-user ec2-user 406 12月 6 11:17 /home/ec2-user/.ssh/id_rsa.pub ⬅︎公開鍵
-rw-r–r– 1 ec2-user ec2-user 222 12月 4 18:48 /home/ec2-user/.ssh/known_hosts

(4)公開鍵ファイル内容確認

cat id_rsa.pub
ssh-rsa xxxxxYx33nlA7tEJluL5XJ2b2qqSrH93cMmh3NudVLcBLMoAm9qa5q4qJcY3QODWEIZMPNv9M0BvSaf9dbsKm8FxvPiye/ZCkY+IqOCWtSNoLyCEgOrQ26s6zCQ0FaumIsoau04beLKjp9vkNZZ2btC2k0r ec2-user@Fumidai
上記公開鍵ファイルをサーバへコピーする
id_rsa.pub

接続先(サーバ)の作業

(1)接続したいユーザに切り替え

su – ec2-user

(2)接続元(クライアント)の公開鍵を配置(例では/tmpに配置)

ls -lh /tmp/id_rsa.pub
-rw-rw-r– 1 ec2-user ec2-user 398 12月 6 11:32 /tmp/id_rsa.pub

(3)現状の鍵認証設定存在を確認

すでに設定が存在しており、aws作成時のキーペアがあるはずですが、既存の情報は変更しないでください。
cat /home/ec2-user/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCAJg5Sslnxxxxxxxxxxxxxxxxxxxxx6QxxxxxxxxxxxxxxxxeN+5zZLooMv+lEIDprKfP50VGFKZ/a3ZD+xcuuF6PB1o9qEiZkCDobyFZhSeC5pKCmHyBXooJcOTup65vSu25yt+fHJRZoLhYy+mwG2+FvdtcxrZu8MIXiT5jI21Kmsdvdv3MF6XEH KP_rensyu20171026

(4)クライアントの公開鍵をauthorized_keysファイルへ追加

※必ず追加の形にしてください
cat /tmp/id_rsa.pub >> /home/ec2-user/.ssh/authorized_keys
cat /home/ec2-user/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCAJg5Sslnxxxxxxxxxxxxxxxxxxxxx6QxxxxxxxxxxxxxxxxeN+5zZLooMv+lEIDprKfP50VGFKZ/a3ZD+xcuuF6PB1o9qEiZkCDobyFZhSeC5pKCmHyBXooJcOTup65vSu25yt+fHJRZoLhYy+mwG2+FvdtcxrZu8MIXiT5jI21Kmsdvdv3MF6XEH KP_rensyu20171026
ssh-rsa xxxxxYx33nlA7tEJluLd/FkSi7q/Qd+ajTqTs6rkqGFtqMCdmXgMzYVPkDMEEkOivhf+l7nn10q2ngiU3M3z4hlJOCPk1LvTAexgX+ZUA7t7IIGqRz3DHg6ze01mYCNtJxC09OuGtRfmQOrcjR99TN9nnauiwsweLBMh90Gs8Kx1Ov6+RUj2B/ziJE9r9q01++C9R5XJ2b2qqSrH93cMmh3NudVLcBLMoAm9qa5q4qJcY3QODWEIZMPNv9M0BvSaf9dbsKm8FxvPiye/ZCkY+IqOCWtSNoLyCEgOrQ26s6zCQ0FaumIsoau04beLKjp9vkNZZ2btC2k0r ec2-user@Fumidai

接続元(クライアント)の作業

(1)サーバ側のファイル設定後、sshコマンドで接続し、接続可能となることを確認

ssh -i ~/.ssh/id_rsa ec2-user@172.30.4.xx(接続先IP)