続き⇛やってみた~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:
パスフレーズの入力を求められるので任意の文字列を入力してそれぞれエンターを押下
出来たっぽいです。
確認していきます。
cat ~/.ssh/id_rsa.pub
中身は↓のような文字列が記述されているのでそれらをコピーします。
※下記は例としての公式のもの
ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2 5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@ip-192-0-2-137
AWSコンソールからIAMサービスを開きます。 ナビゲーションペインから[ユーザ]→今回用に作成した該当ユーザ→認証情報→[SSH公開キーのアップロード]を選択
アップロードウィザードが開くので先程コピーした自身の公開キーを貼り付けて[SSH公開キーのアップロード]を押下
アップロードが完了しステータスがアクティブになりました。
今回は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"`
バックアップも出来たので編集していきます。
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
手動で同期
シェルが存在するか確認して手動実行
cd /opt ls sh /opt/import_users.sh
ユーザ確認
ls /home
出来てる模様
ステータスを確認してからsshdを再起動
systemctl status sshd systemctl restart sshd systemctl status sshd
動作確認
なんかうまくいかんので調査中、ハイパーに悔しい(´・ω・`)
アハ体験まで遠い
切り分け
ツールを使わずに通常の公開鍵登録での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インスタンスパブリックドメイン
いけるじゃん
基本的なやり方では問題なく接続出来るとなると、ツールの仕様をもう少し調べないと駄目っぽいか‥.