[Cloud] Recovering opc user SSH Key on Oracle Cloud Infrastructure

原文はこちら。
https://blogs.oracle.com/cloud-infrastructure/recovering-opc-user-ssh-key-on-oracle-cloud-infrastructure

Oracle Cloud Infrastructureインスタンスに接続しようとしているけれど、何らかの理由でopcユーザーのSSH鍵が壊れたり、削除したりした場合のことを想像してみてください。最初は恐ろしいかもしれませんが、Oracle Cloud InfrastructureでopcユーザーのSSH鍵を復元するのは案外簡単です。

SSH経由で接続しようとしたときに
"Permission denied (publickey,gssapi-keyex,gssapi-with-mic)"
というエラーが表示された場合は、以下の手順に従って鍵を復元してください。

また、opcユーザーのSSH鍵を復元する別の方法として、Oracle Cloud Infrastructureシリアル・コンソールのメンテナンス・モード・ブート・オプションを使用することもできます。 詳細については、以下のドキュメントをご覧ください。
Instance Console Connections
https://docs.cloud.oracle.com/iaas/Content/Compute/References/serialconsole.htm

Summary

  1. ログインできないインスタンスを停止
  2. ブートボリュームをデタッチ
  3. 実行中のLinuxインスタンスにデタッチしたブートボリュームをアタッチ
  4. iSCSIコマンドを実行して、デバイスをアタッチし、ローカルのOSから認識できるようにする
  5. authorized_keys ファイルを修復
  6. iSCSIコマンドを実行し、デバイスをアンマウント、デタッチ
  7. 元のインスタンスにブートボリュームをアタッチしてインスタンスを起動

Process

  1. 接続できないインスタンスを停止します。Oracle Cloud Infrastructure Consoleのインスタンス詳細ページに移動して、Stopをクリックします。詳細は以下のドキュメントをご覧ください。
  2. Stopping and Starting an Instance https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/restartinginstance.htm?Highlight=stop%20instance
  3. ブートボリュームをデタッチします。Boot VolumeセクションでActionsアイコンをクリックし、Detachを選択します。
    Detaching a Boot Volume
    https://docs.cloud.oracle.com/iaas/Content/Block/Tasks/detachingabootvolume.htm
  4. デタッチしたブートボリュームを別のLinuxインスタンスにアタッチします。異なるVMのDetailsページに移動し、Attach Block Volumeをクリックして、先ほどデタッチしたブートボリュームを選択します。Read/Writeアクセスを選択することをお忘れなく。
  5. Attaching a Boot Volume https://docs.cloud.oracle.com/iaas/Content/Block/Tasks/attachingabootvolume.htm?tocpath=Services%7CCompute%7CBoot%20Volumes%7C_____2
  6. ブートボリュームのアタッチが(BVアイコンが緑になって)完了した後に、SSHで実行中のVMに接続し、iSCSIコマンドでこの新しいディスクをOSが認識し利用できるようにします。

    ブートボリュームは/dev/sdbとして見えるはずです。
  7. mountコマンドを使い、opcユーザーのSSH鍵ファイルを復元できるルート(/)パーティション /dev/sdb3 をローカルのOSで利用可能にします。このとき、必ず-o nouuidオプションを使用してください。 そうしないと、
    mount: wrong fs type, bad option, bad superblock on /dev/sdb3
    のようなエラーメッセージが現れます。
    $  sudo mount -o nouuid /dev/sdb3 /mnt
  8. /mnt/home/opc/.ssh/authorized_keysファイルを編集し、SSH公開鍵ファイルを追加して、opcユーザーのSSH鍵を修正します。
    $  sudo vi /mnt/home/opc/.ssh/authorized_keys 
    SSH公開鍵の追加もしくは変更が終了したら、保存して終了します。
  9. umount /mnt を実行します。
    $  sudo umount /mnt
  10. iSCSIコマンドdetachを実行して、iSCSIブートボリュームをデタッチします。
  11. /dev/sdb ディスクが見えず、かつ利用できないことを確認してから、デタッチするようにしてください。
  12. ブートボリュームを元々のインスタンスに再度アタッチし、利用可能になるまで待ちます。
これでおしまいです。opcユーザーのSSH鍵が復元され、元々のインスタンスにログインできるようになります。この方法はルート(/)パーティションのトラブルシューティングにも利用できます。

0 件のコメント:

コメントを投稿