AWS EC2 にて作業ユーザーを増やして SSH 接続しようとしたら、
$ ssh test@xx.xx.xx.xx
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
というエラーが出た。
他のユーザーでは証明書と鍵を使ってログインしてたので、
追加するユーザーも同じく対応した。
AWS コンソール側
pem ファイルは使いまわせるので、
既にお使いの EC2 に SSH 接続するために必要な pem ファイルを持っていたらスキップしてもいいと思う。
pem ファイル(デジタル証明書)を DL する
- EC2 → キーペア → 「キーペアを作成」クリック
- 名前 - 適当
- キーペアのタイプ - RSA
- プライベートキーファイル形式 - .pem
- 「キーペアを作成」クリック
- pem ファイルが DL される
自分のパソコン側
DL した pem ファイルを使って公開鍵を作成する
# DL した pem ファイルを .ssh に移動する
$ mv /path/to/downloads/xxxx.pem .ssh
$ cd .ssh
# 600 じゃなければ変更
$ chmod 600 xxxx.pem
# DL した pem ファイルを指定
# -y OpenSSH形式の秘密鍵ファイルを読み出し、OpenSSH形式の公開鍵を標準出力に出力する。だそう
# -f ファイルを指定する。だそう
$ ssh-keygen -y -f xxxx.pem
# 後で使うのでコピーする
ssh-rsa AAAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRNFAOejhaA
EOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiua-erakUg
VNi1BSxpAmOyWzAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRNFAOe
jhaAEOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiua-er
akUgVNi1BSxpAmOyWzAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRN
FAOejhaAEOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiu
.ssh/config
下記のような形でログインしたい時は .ssh/config を扱う。
下記記事参考。
$ ssh sample.test
AWS EC2 側
ユーザーを追加する
$ sudo useradd username
パスワードを変更する
$ sudo passwd username
ユーザーを切り替える
$ su - username
.ssh/authorized_keys 作成
# なかったら作る
# -m パーミッション指定
$ mkdir -m 700 .ssh
$ cd .ssh
$ vi authorized_keys
# 先ほどコピーした公開鍵をペーストする
ssh-rsa AAAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRNFAOejhaA
EOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiua-erakUg
VNi1BSxpAmOyWzAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRNFAOe
jhaAEOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiua-er
akUgVNi1BSxpAmOyWzAt+XEla6a3NzaC1ycAAVORFAINOEINDAOEIRN
FAOejhaAEOABNAWOEINAoaaVR8rWcjkNPwW7+2ytrSX2S3efaurhaiu
# 600 でなければ変更
$ chmod 600 authorized_keys
確認その1
$ ssh sample.test
確認その2
AWS コンソールにて、
「EC2」 → 「インスタンス」 → ssh 接続したいインスタンスをチェック → 「接続(実行中のインスタンスのみ選択可)」クリック → 「SSH クライアント」→ 「ssh -i "xxxx.pem" xxxx@.....」をコピーする。
# 今回 pem ファイルは .ssh にあるので .ssh に移動
$ cd .ssh
# AWS コンソールにてコピーしたものを貼り付け
$ ssh -i "xxxx.pem" user@ec2-xx-xxx-xxx-xxx.xx-xxx-1.compute.amazonaws.com