目標
- EC2 に ssh 接続を行う
- ssh 接続時に「-i」でキーの指定を行うが、これを省略する
まずはキーを指定して ssh 接続
$ ssh -i key-pair-sample.pem ec2-user@xxx.xxx.xxx.xxx
都度、「-i」でキーを指定するのが不便なので改善できないかを考える。
クライアントの秘密鍵・公開鍵で接続
概要
- クライアントにて自身の公開鍵・秘密鍵を作成
- クライアントの公開鍵はリモートサーバーに登録する
- .ssh/authorized_keys に登録する
- EC2 起動時もキーペアに指定したものが自動的に登録されている
- 秘密鍵を用いてクライアントから接続される
※EC2ダッシュボードから、対象のEC2インスタンスを選択し、[Actions] > [Instance Settings] > [Edit User Data] を編集することにより同様の操作ができるようなので後日追記する。
手順
-
クライアント端末作業/自身のローカル Linux の公開鍵・秘密鍵を作成
$ ssh-keygen -t rsa -b 4096
※パスコードを指定できる。指定した場合は、秘密鍵を使用する際(つまり ssh 接続時)に入力が求められる。
-
クライアント端末作業/公開鍵を EC2 に送る
$ scp -i key-pair-sample.pem /home/user/.ssh/id_rsa.pub ec2-user@xxx.xxx.xxx.xxx:~/.
-
リモート端末/受け取った公開鍵を登録
$ cat ~/id_rsa.pub >> .ssh/authorized_keys
これで
$ ssh ec2-user@xxx.xxx.xxx.xxx
で接続できる。
別解: .ssh/config を指定して入力を省略する
以下の指定を行うことにより、都度入力を省くことができる。
ただし、実質秘密鍵を各クライアントが持つことになるので注意。
Host my_ec2_instance
HostName your_ec2_instance_ip
User ec2-user
IdentityFile ~/.ssh/your_key.pem