続き⇛やってみた~aws-ec2-sshでEC2の踏み台サーバのユーザ管理を楽にする~

前回(やってみた~aws-ec2-sshでEC2の踏み台サーバのユーザ管理を楽にする~)の続き

※2018/12/21 追記


SSH公開鍵の登録

公開鍵の作成あたっての公式参考

Linux, macOS, or Unix 上で AWS CodeCommit リポジトリに SSH 接続するために必要なセットアップ手順 - AWS CodeCommit

作業端末で公開キーを作成

ssh-keygen
Enter file in which to save the key (/home/user-name/.ssh/id_rsa):

対話式で上記の様に保存先を聞かれますので、任意の保存先パスを入力してエンターを押下。 今回はデフォルトのまま何も入力せずエンターを押しました。

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

パスフレーズの入力を求められるので任意の文字列を入力してそれぞれエンターを押下

f:id:hedgehogweeklyreport:20181215113855p:plain

出来たっぽいです。

確認していきます。

cat ~/.ssh/id_rsa.pub

中身は↓のような文字列が記述されているのでそれらをコピーします。
※下記は例としての公式のもの

ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB
gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2
5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc
NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw
DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@ip-192-0-2-137

AWSコンソールからIAMサービスを開きます。 ナビゲーションペインから[ユーザ]→今回用に作成した該当ユーザ→認証情報→[SSH公開キーのアップロード]を選択

f:id:hedgehogweeklyreport:20181215102503p:plain

アップロードウィザードが開くので先程コピーした自身の公開キーを貼り付けて[SSH公開キーのアップロード]を押下

f:id:hedgehogweeklyreport:20181215102734p:plain:w400

f:id:hedgehogweeklyreport:20181215102904p:plain

アップロードが完了しステータスがアクティブになりました。
今回は2ユーザ作成してるのでもう片方にも同様の作業を実施


aws-ec2-ssh.confの設定

その前に状態確認

cd ~
cd aws-ec2-ssh
cat aws-ec2-ssh.conf

下記が初期状態の模様

AM_AUTHORIZED_GROUPS=""
LOCAL_MARKER_GROUP="iam-synced-users"
LOCAL_GROUPS=""
SUDOERS_GROUPS=""
ASSUMEROLE=""

# Remove or set to 0 if you are done with configuration
# To change the interval of the sync change the file
# /etc/cron.d/import_users
DONOTSYNC=0

バックアップ作成と確認

cp -pi aws-ec2-ssh.conf aws-ec2-ssh.conf_`date "+%Y%m%d"`

ls -l
cat aws-ec2-ssh.conf_`date "+%Y%m%d"`

f:id:hedgehogweeklyreport:20181215105246p:plain:w400

バックアップも出来たので編集していきます。

vi aws-ec2-ssh.conf

元記事にならって↓のように編集

IAM_AUTHORIZED_GROUPS="members"
LOCAL_MARKER_GROUP="iam-synced-users"
LOCAL_GROUPS=""
SUDOERS_GROUPS="admins"
ASSUMEROLE=""

# Remove or set to 0 if you are done with configuration
# To change the interval of the sync change the file
# /etc/cron.d/import_users
DONOTSYNC=0

設定変更がちゃんと反映されているか確認

cat aws-ec2-ssh.conf

f:id:hedgehogweeklyreport:20181215110047p:plain:w400


手動で同期

シェルが存在するか確認して手動実行

cd /opt
ls
sh /opt/import_users.sh

ユーザ確認

ls /home

出来てる模様
f:id:hedgehogweeklyreport:20181215110653p:plain:w400

ステータスを確認してからsshdを再起動

systemctl status sshd
systemctl restart sshd
systemctl status sshd

f:id:hedgehogweeklyreport:20181215111044p:plain:w400


動作確認

なんかうまくいかんので調査中、ハイパーに悔しい(´・ω・`)
アハ体験まで遠い


切り分け

ツールを使わずに通常の公開鍵登録でのssh接続をやってみて上手くいくか試す

テストユーザの追加とパスワードの設定

useradd test
passwd test

sudo許可

cat /etc/sudoers
cp -pi /etc/sudoers /etc/sudoers.org
ls /etc | grep sudoers.org
cat /etc/sudoers.org
visudo

下記を追記して保存

test ALL=(ALL) ALL

バックアップとの差分確認

diff /etc/sudoers /etc/sudoers.org

結果

< test ALL=(ALL) ALL

端末で改めて鍵を作成

ssh-keygen -t rsa

scpで作成した公開鍵(id_rsa.pub)転送

scp -i <インスタンスのpem鍵> ~/.ssh/id_rsa.pub ec2-user@<EC2インスタンスパブリックドメイン>:/home/ec2-user

EC2インスタンス側で転送確認

su ec2-user
ls
cat id_rsa.pub

公開鍵(id_rsa.pub)の移動とauthorized_keysへリネーム

su test
mkdir /home/test/.ssh
udo mv id_rsa.pub /home/test/.ssh/authorized_keys

所有者及び権限変更

sudo chown test /home/test/.ssh/authorized_keys
sudo chgrp test /home/test/.ssh/authorized_keys 
sudo chmod 600 /home/test/.ssh/authorized_keys 
sudo chmod 700 /home/test/.ssh

テストユーザで端末からssh接続確認

ssh test@EC2インスタンスパブリックドメイン

f:id:hedgehogweeklyreport:20181221133708p:plain

いけるじゃん
基本的なやり方では問題なく接続出来るとなると、ツールの仕様をもう少し調べないと駄目っぽいか‥.