概要
表題の通り、実務にてキーペアーを紛失したec2-user以外のユーザーでEC2のサーバーにsshで接続する必要があったので、その対処方法を記載します。
前提条件
-
EC2のサーバーが構築されている -
ec2-user以外のユーザーが作成されている -
ec2-userorrootであれば、EC2のサーバーにsshでログインできる
注意事項
公開鍵・秘密鍵の取り扱いになる為、慎重に作業を行って下さい
サーバー側で行う設定
バックアップの作成
1.rootユーザー、ec2-userで、EC2のサーバーにアクセスする
※ セッションマネージャーを使用してアクセスしても良い
※ ローカル環境でEC2にsshで接続する場合は、下記の方法で行う
# ローカル環境の.sshディレクトリーに移動
cd ~/.ssh
# EC2のアクセスコマンド
ssh -i "〇〇.pem" ユーザー名@ec2-パブリックIPv4アドレス.リージョン.compute.amazonaws.com
# 入力例
# ユーザー名には関しては、root or ec2-userどちらでも良い
ssh -i "test.pem" root@ec2-00.00.00.000.us-east-1.compute.amazonaws.com
2.サーバー内の.sshディレクトリーに移動する
cd /home/ユーザー名/.ssh
# 上記のコマンドで表示されない場合がある
# サーバー毎に、どこに.sshディレクトリーがあるか調べる必要がある
3.バックアップディレクトリーを作成
mkdir 任意のディレクトリー名
入力例
mkdir backup_keys
4.catコマンド使用して、公開鍵の中身確認して、その内容をコピーする
cat authorized_keys
# 設定を変更していなければ、authorized_keysの名前で公開鍵が保存されている
# 出力内容
ssh-rsa
# 省略
test@ip-000-00-0-000.us-west-1.compute.internal
5.backupディレクトリーに移動する
cd 任意のディレクトリー名
6.touchコマンドを使用して、ファイルを作成する
touch 任意のファイル名
# 入力例
touch backup_keys
7.先程、touchコマンドで作成したファイルをvimorviエディターで開き、コピーしておいた公開鍵を貼り付ける
vim 任意のファイル名
# ファイル内
ssh-rsa
# 省略
test@ip-000-00-0-000.us-west-1.compute.internal
上記の工程まで終われば、バックアップの作成は完了
ローカル環境で行う設定
1.ターミナル等のCLIを開き、.sshディレクトリーに移動する
cd ~/.ssh
2.既存の公開鍵・秘密鍵に影響しない様に、.sshディレクトリー内に新しいディレクトリーを作成する
mkdir 任意の名前
# 入力例
mkdir test_pem_directory
3.上記で作成したディレクトリーに移動する
cd 任意の名前
# 入力例
cd test_pem_directory
4.ssh-keygenのコマンド使用して、公開鍵・秘密鍵を作成する
ssh-keygen -t rsa -m PEM -f ~/.ssh/test_pem_directory/test_pem
# t rsa: RSAキーの暗号アルゴリズムを使う
# -m PEM: PEM 形式の鍵を生成するように指定
# -f: ファイル場所とファイ名を指定
5.〇〇.pubの中身をコピーして控えておく
cat 〇〇.pub
# 出力内容
ssh-rsa
# 省略
test@test.com
6. 下記の工程を行う(サーバー側での作業)
ローカル環境で、公開鍵・秘密鍵を作成した後に行う作業
公開鍵・秘密鍵をEC2に設置
1. 権限が付与されているユーザー(root、ec2-user等)で、EC2のサーバーにアクセスする
# 他のユーザーでも可能
sudo su root or ec2-user
2. EC2のサーバー内にあるauthorized_keysが存在するディレクトリに移動する
cd home/ユーザー名/.ssh/
3. ローカル環境で作成した公開鍵を貼り付ける
注意事項
別の人の公開鍵(〇〇.pub)がある場合は、その公開鍵の下に、改行して1行空けてから貼り付けを行う
# ファイル編集
vim home/ユーザー名/.ssh/authorized_keys
# authorized_keysの中身
ssh-rsa
# 省略
test@ip-000-00-0-000.us-west-1.compute.internal
# 改行
ssh-rsa
# 省略
test@test.com
参考資料
- SSHの基本と、公開鍵を登録してサーバーに入るまでの手順
- [stack overflow]:Ruby Net/SSH 7.0.1 - Ubuntu 22 / OpenSSL 3 issue
- 【図解】公開鍵・秘密鍵の仕組みを分かりやすく ~公開鍵暗号方式の身近で具体的な利用例やメリット~
感想
公開鍵・秘密鍵に関しては、全然分かっていなかったので、今回勉強できてよかったと思ってます。今後も公開鍵・秘密鍵の設定に関しては、触る機会がありそうなので、次に同じ様な問題があった時は、サックと対応したいと思います。