Google Cloud Computeのdebianインスタンスで誤ってUFWを有効にしましたが、残念ながらポート22がブロックされています。 VM=の中に入るようにあらゆる方法を試しましたが、できません。
シリアルポートを介してアクセスしようとしていますが、設定されていないユーザーとパスワードを要求しています。
誰か私に何ができるか考えていますか?
この回答は、この問題を解決する2つの方法を示しています。
最初の方法は、UFWを無効にする起動スクリプトを作成することです。 2番目の方法は、ブートディスクを別のインスタンスに接続し、ファイル/etc/ufw/ufw.conf
を変更します
方法1:
ステップ1:
Google Cloud Consoleにログインします。 Compute Engineに移動します-> VMインスタンス。インスタンスをクリックします。[編集]ボタンをクリックします。
ステップ2:
[カスタムメタデータ]セクションまでスクロールします。キーにstartup-script
を入力します。値を入力してください:
#! /bin/bash
/usr/sbin/ufw disable
保存ボタンをクリックします
ステップ3:
インスタンスを再起動します。再起動中に、起動スクリプトが実行され、UFWファイアウォールが無効になります。 SSHを使用してインスタンスにログインします。
ステップ4:
今回以外は手順2を繰り返し、起動スクリプトを削除します。そうしないと、インスタンスが起動するたびにファイアウォールが無効になります。
方法2:
ステップ1:
UFW問題のあるインスタンスをシャットダウンします。 Google Cloud Consoleにログインします。 Compute Engineに移動します-> VMインスタンス。インスタンスをクリックして、「ブートディスク」の名前を書き留めます。これは、「ブートディスクとローカルディスク」の下の最初のディスクになります。
ステップ2:
先に進む前に、ブートディスクのスナップショットを作成します。 Compute Engine-> Diskにいる間。ブートディスクをクリックします。 「スナップショットの作成」をクリックします。
ステップ3:
同じゾーンに新しいインスタンスを作成します。マイクロインスタンスが機能します。
ステップ4:
Cloud Shellプロンプトを開きます(gcloudがセットアップされている場合、これはデスクトップからも機能します)。このコマンドを実行します。 NAMEをインスタンス名(壊れたシステム)で置き換え、DISKをブートディスク名で置き換え、ZONEをシステムが存在するゾーンで置き換えます。
gcloud compute instance detach-disk NAME --disk=DISK --zone=ZONE
前のコマンドがエラーを報告していないことを確認してください。
ステップ5:
次に、このディスクを、作成した新しいインスタンスに接続します。
2番目のディスクを接続する前に、修復インスタンスが実行されていることを確認してください。複数のディスクが起動可能である場合、インスタンスが起動元のディスクで混乱することがあります。
Compute Engineに移動します-> VMインスタンス。インスタンスをクリックします。[編集]をクリックします。[追加ディスク]で[アイテムを追加]をクリックします。名前には、破損したディスクから切り離したディスクを入力/選択してくださいインスタンス。「保存」をクリックします。
ステップ6:
両方のディスクが接続された新しいインスタンスにSSHで接続します。
ステップ7:
これらの手順を注意深く実行してください。 2つ目のディスクをルートファイルシステムにマウントします。次に/mnt/repair/etc/ufw/ufw.confの内容を変更してファイアウォールを無効にします。
ENABLED=yes
をENABLED=no
に変更しますステップ8:
次に、手順を逆にして、2番目のディスクを元のインスタンスに戻し、以下のコマンドを使用して再接続します。次に、インスタンスを起動し、SSH経由で接続します。
注:ブートディスクを再接続するには、-bootオプションを指定してgcloudを使用する必要があります。
gcloud beta compute instances attach-disk NAME --disk=DISK --zone=ZONE --boot