Google Cloud/Compute Engine 上に問題なく動作する Ubuntu サーバーがあります。コマンドラインから SSH 接続することも、Google Cloud ダッシュボード コンソールから SSH 接続することもできます。
サーバーのクローンを作成するためにスナップショットを作成すると、新しいクローンに ssh できません。ssh デーモンがリッスンしていないようです。Google Cloud ダッシュボードから ssh することすらできません。
理由を知っている人はいますか?
シリアル コンソールから (注: 貼り付けた sha256 を編集しました):
Mar 20 20:16:19 qa-for-work cloud-init[1042]: Generating public/private ed25519 key pair.
Mar 20 20:16:19 qa-for-work cloud-init[1042]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
cloud-init[1042]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
Mar 20 20:16:20 qa-for-work cloud-init[1042]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
[ 110.667373] cloud-init[1042]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
Mar 20 20:16:20 qa-for-work cloud-init[1042]: The key fingerprint is:
[ 110.667475] cloud-init[1042]: The key fingerprint is:
Mar 20 20:16:20 qa-for-work cloud-init[1042]: SHA256:u6ros 4MQtfpO5GM root@qa-for-work
[ 110.667560] cloud-init[1042]: SHA256:u6ros 1GtaVy4MQtfpO5GM root@qa-for-work
Mar 20 20:16:20 qa-for-work cloud-init[1042]: The key's randomart image is:
[ 110.667644] cloud-init[1042]: The key's randomart image is:
Mar 20 20:16:20 qa-for-work cloud-init[1042]: +--[ED25519 256]--+
[ 110.667775] cloud-init[1042]: +--[ED25519 256]--+
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o*o..=+o... |
[ 110.667864] cloud-init[1042]: | o*o..=+o... |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o.o.o.+... |
[ 110.667939] cloud-init[1042]: | o.o.o.+... |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o . ...o . |
[ 110.668037] cloud-init[1042]: | o . ...o . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | = . .. + |
[ 110.668116] cloud-init[1042]: | = . .. + |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | + = o S . |
[ 110.668192] cloud-init[1042]: | + = o S . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: | o + o + . |
[ 110.668275] cloud-init[1042]: | o + o + . |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |o + o E |
[ 110.668349] cloud-init[1042]: |o + o E |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |.*.+ . + o |
[ 110.668503] cloud-init[1042]: |.*.+ . + o |
Mar 20 20:16:20 qa-for-work cloud-init[1042]: |ooB+o...o |
[ 110.668596] cloud-init[1042]: |ooB+o...o |
Mar 20 20:16:20 qa-for-work systemd[1]: Started Initial cloud-init job (metadata service crawler).
Mar 20 20:16:20 qa-for-work cloud-init[1042]: +----[SHA256]-----+
[ 110.668946] cloud-init[1042]: +----[SHA256]-----+
Mar 20 20:16:20 qa-for-work ntpdate[1023]: adjust time server 169.254.169.254 offset 0.361638 sec
Mar 20 20:16:20 qa-for-work systemd[1]: Reached target Network is Online.
Mar 20 20:16:20 qa-for-work systemd[1]: Reached target Cloud-config availability.
Mar 20 20:16:20 qa-for-work systemd[1]: Startup finished in 7.356s (kernel) + 1min 42.350s (userspace) = 1min 49.706s.
答え1
問題は、元のインスタンスにディスクが接続されていたことです。
解決策は、 内の接続されたディスクのマウントをコメントアウトすることでした/etc/fstab
。
通常の Linux システムは、非ルート マウント ポイントがマウントされていない場合でも、起動して ssh の実行を継続します。シリアル コンソールにこのことを示すエラー メッセージは表示されません。
Google のクラウドは今でも私のお気に入りのクラウドですが、これは Google にとって大きな失敗です。
答え2
新しいインスタンスがソース インスタンスのスナップショットから作成される場合、スナップショットから生成された新しいインスタンスの sshd 構成は、ソース インスタンスの構成と変わりません。
Cloud Shell から SSH を試行すると、どのようなエラー メッセージが表示されますか?
$ gcloud compute ssh INSTANCE_NAME
スナップショットを作成すると、それはディスクのスナップショットとなり、ソース マシンの他の側面に関する情報は含まれません。
スナップショットから作成する新しいインスタンスに、ソース インスタンスと同じネットワーク タグが割り当てられていない可能性はありますか (新しいインスタンスへのポート 22 へのアクセスが妨げられる可能性があります)? これは間違いなく確認する価値があると思います。
また、新しいマシンに外部 IP アドレスが割り当てられていることを確認してください。
編集:
インスタンスの起動に影響する (したがってインスタンスへの SSH アクセスにも影響する) 無効な fstab エントリに関する投稿者の更新情報に関連して、いくつかの追加情報を追加しました。
役に立つ情報がいくつかありますここfstab エントリに [NOFAIL_OPTION] を追加することについて。これは、起動時に永続ディスクをマウントできない場合にオペレーティング システムが行うべきことを指定する変数です。これを使用すると、無効な fstab エントリに関連する起動の問題を防ぐことができます。