###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-014_仮想サーバ_管理者ユーザパスワード取得 # # 内容: # 仮想サーバ作成時に指定したキーペアを利用して、管理者ユーザパスワード # 取得する手順です。 # # 版数:v1.1 # 更新日:2018/1/26 ###################################################################### 手順: ─────────────────────────────────── 項番1.仮想サーバ確認 項番2.仮想サーバ管理者ユーザパスワード取得 項番2-1.仮想サーバ管理者ユーザパスワード取得 項番2-2.管理者ユーザパスワード復号化 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・セキュリティグループ ・仮想サーバ(キーペアを指定し作成) ・キーペア ─────────────────────────────────── 項番1.仮想サーバ確認 事前に作成した仮想サーバを確認し、以下のパラメータを確認します。 ・"key_name": "<キーペア名>" ・"status": "ACTIVE" 環境定義コマンド例: ====================================================================== # SERVER_ID=<事前に作成した仮想サーバID> SERVER_ID=5eed3a04-095c-420c-a753-f8aefc663c75 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "metadata": {}, "config_drive": "", "OS-EXT-STS:power_state": 1, "progress": 0, "accessIPv6": "", "accessIPv4": "", "os-extended-volumes:volumes_attached": [ { "id": "ba8b9ee5-8619-49c1-bd11-a586a9e2w0m2" } ], "OS-DCF:diskConfig": "MANUAL", "tenant_id": "<プロジェクトID>", "created": "2018-01-11T12:30:55Z", "name": "TEST_SERVER_01", "user_id": "<ユーザID>", "OS-EXT-AZ:availability_zone": "jp-west-2a", "OS-SRV-USG:terminated_at": null, "image": "", "key_name": "TEST_KEY_01", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/5eed3a04-095c-420c-a753-f8aefc663c75" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/5eed3a04-095c-420c-a753-f8aefc663c75" } ], "addresses": { "TEST_NETWORK_01": [ { "OS-EXT-IPS:type": "fixed", "addr": "192.168.50.15", "version": 4, "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:e5:cf:c2" } ] }, "OS-EXT-SRV-ATTR:host": "jp3a01-pgy115-00", "hostId": "4fd36ba00084a134fc627693bb3c8c0667903fa7c0bb63d7054109e8", "updated": "2018-01-11T12:45:28Z", "status": "ACTIVE", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0001f2ed", "OS-SRV-USG:launched_at": "2018-01-11T12:45:28.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy115-00", "flavor": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101" } ], "id": "1101" }, "id": "5eed3a04-095c-420c-a753-f8aefc663c75", "security_groups": [ { "name": "TEST_SG_01" } ] } } ====================================================================== 項番2.仮想サーバ管理者ユーザパスワード取得 仮想サーバの管理者ユーザパスワードを取得し、キーペアを利用して復号化 したパスワードを取得します。 項番2-1.仮想サーバ管理者ユーザパスワード取得 APIを用いて仮想サーバの管理者ユーザパスワードを取得します。 注意事項: ・仮想サーバ作成直後の場合は、パスワード取得までに10分程度の時間を 要する場合があります。時間を空けてから、再度、本APIコマンドを 実行してください。 環境定義コマンド例: ====================================================================== # SERVER_ID=<管理者ユーザパスワードを取得する仮想サーバID> SERVER_ID=5eed3a04-095c-420c-a753-f8aefc663c75 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID/os-server-password -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "password": "im/HGUXqHnov1XwAcTAPiBTZU1NsPRnkpm9Li0Ar6nXxoWssh/ZeDXEucbQoVWv72rW4/qCM8lOcNNBX+IQglqagMiz+v7Ncy - 中略 - DfWuL2kKQoW6QOG5ScUG9QKrE80ywdsltsqQgWaNS4NKR+DNEXm/BtWrb35aNP45hGtLCJ1V/SwVtDA1kLeULGegUnM0meGn==" } ====================================================================== 項番2-2.管理者ユーザパスワード復号化 opensslコマンドを用いて、仮想サーバに設定したキーペアを利用して 取得した管理者ユーザパスワードを復号化します。 注意事項: ・本コマンド実行後のレスポンス値がパスワードとなります。リモート デスクトップ接続等を利用して、仮想サーバにログインしてください。 環境定義コマンド例: ====================================================================== # PASSWORD=<項番2-1で取得したパスワード> PASSWORD=im/HGUXqHnov1XwAcTAPiBTZU1NsPRnkpm9Li0Ar6nXxoWssh/ZeDXEucbQoVWv72rW4/qCM8lOcNNBX+IQglqagMiz+v7Ncy - 中略 - DfWuL2kKQoW6QOG5ScUG9QKrE80ywdsltsqQgWaNS4NKR+DNEXm/BtWrb35aNP45hGtLCJ1V/SwVtDA1kLeULGegUnM0meGn== API実行コマンド例: ====================================================================== # echo $PASSWORD | openssl base64 -d -A | openssl rsautl -decrypt -inkey <仮想サーバに指定したキーペア名> echo $PASSWORD | openssl base64 -d -A | openssl rsautl -decrypt -inkey TEST_KEY_01.pem レスポンス例: ====================================================================== bY4sALIsfHlosPjyLMFRG ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版: ・項番全体:項番構成の見直し、説明修正 ─────────────────────────────────── 以上