2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSH公開鍵認証の設定方法など

Last updated at Posted at 2021-01-30

#なんでこの記事を書くか
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もどちらでも使えますね。
違いを知らなかったので調べてみました。

  1. pem - Privacy Enhanced Mail

    暗号化鍵や証明書をを入れておくコンテナ(箱)

  2. 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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?