#なんでこの記事を書くか
AWSのEC2、AmazonLinuxにSSH接続する際、ec2-userでpemファイルを使って(キーペア)ログインしますよね。
ec2-user以外でキーペアを使って接続する場合、どんな設定をすればいいのか知りませんでした。
(そもそも公開鍵認証自体の仕組みをいまいちよくわかってない)
#調べたこと
1.公開鍵認証とは
私が書くよりこちらのほうがよさそう。
[「よく分かる公開鍵認証」~初心者でもよくわかる!VPSによるWebサーバー運用講座(2)][link1]
[link1]:https://knowledge.sakura.ad.jp/3543/
2.AWSのEC2での公開鍵と秘密鍵は?
- 公開鍵(パブリックキー) #サーバ側
- /home/ec2-user/.ssh/authorized_keys
- 秘密鍵(プライベートキー)#クライアント側
- ec2インスタンス起動時やキーペア作成画面でキーペア作成した際にダウンロードしたファイル(***.pem,***.ppk)
※「authorized_keys」はデフォルトの公開鍵名で、
「/etc/ssh/sshd_config」のAuthorizedKeysFileディレクティブで指定されている。
3.ec2-user以外の公開鍵認証はどうやる? やってみた
ec2-userに設定される公開鍵、対応する秘密鍵はAWSが作ってくれるのですが、
自分で公開鍵、秘密鍵を作ってec2-user以外のユーザで公開鍵認証にする場合はどうやって作るのか?やってみた
1.ユーザを作成する(今回はhogeを作成したとする)
# sudo useradd -m hoge
2.作成したユーザでログイン
# sudo su - hoge
3.公開鍵、秘密鍵の作成
# ssh-keygen
※3回質問されますが、今回は何も入力せずにEnter
4.公開鍵、秘密鍵が作成されていることを確認(id_rsa.pubが公開鍵、id_rsaが秘密鍵)
# ls -l /home/hoge/.ssh
-rw------- 1 hoge hoge 1675 Jan 30 05:17 id_rsa
-rw-r--r-- 1 hoge hoge 434 Jan 30 05:17 id_rsa.pub
5.公開鍵、秘密鍵の変更(秘密鍵は任意の名前でOK)
# cd /home/hoge/.ssh
# mv -p id_rsa.pub authorized_keys
# mv -p id_rsa ssh_key_hoge.pem
6.秘密鍵をダウンロードし、ターミナルからhogeユーザでダウンロードした秘密鍵(ssh_key_hoge.pem)でログイン
※今回はssh-keygenで作成しましたが、AWSのEC2のキーペア作成画面でも個別に作成することもできますね。
ただ、公開鍵は秘密鍵(ppk,pemのファイル)からputtyで生成するかインスタンスメタデータで取得する感じ。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html
#その他
1.ppk と pem
ppkとかpemとか拡張子の違う秘密鍵を渡されることがあります。
teratermは、どちらのppkもpemもどちらでも使えますね。
違いを知らなかったので調べてみました。
-
pem - Privacy Enhanced Mail
暗号化鍵や証明書をを入れておくコンテナ(箱) -
ppk - PuTTY Private Key files
名前の通りputtyでこちらは箱ではなくファイル。
WinSCPなどではこれをつかったりしますね。
ppk←→pem は相互に変換が可能
PuTTYgenで変換します。
変換方法は以下に書いてくれています。
Amazon Linux 2にrootで公開鍵認証する
rootのauthorized_keysの秘密鍵ないなと思ってたんですけど以下が参考になりました。
(Amazon Linux 2の)sshd_configとauthorized_keysを学ぶ
https://qiita.com/Inon/items/84162368dd57e4356621#root%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E7%A6%81%E6%AD%A2
sshd_config のPermitRootLoginは、without-password がよいと思います。
参考にした記事
[SSH公開鍵認証で接続するまで][link2]
[AWS EC2なLinux サーバへroot ユーザでのSSHログインを許可する][link3]
[pemファイルとppkファイルの違い][link4]
[link2]:https://qiita.com/kazokmr/items/754169cfa996b24fcbf5
[link3]:https://sig9.hatenablog.com/entry/2019/07/15/000000
[link4]:https://qiita.com/one_punch_man/items/2ad8b4664ed012bee5a7