我使用以下方法将虚拟机从 libvirt 迁移到 Google Cloud PlatformCloudendure。 这初始同步已完成并数据复制阶段超过一周。一旦使用测试模式启动虚拟机并尝试使用 ssh 访问 putty,它就会抛出 连接被拒绝退出,错误代码为 255。
GCP 和机器中的防火墙规则允许端口 22 进行传入连接。SSH 密钥也在元数据部分以及机器中的 authorized_keys 中正确更新。
尝试的步骤:
- 已关注这安装 Linux 客户操作系统。
ssh keygen -t rsa -C ""
在 gcloud shell 中使用生成 SSH 密钥。
我无法通过 ssh 进入 Linux 环境。非常感谢您的帮助
操作系统:Ubuntu 18.04 LTS x64
答案1
这是一个可以帮助您解决问题的解决方法,您必须按照以下步骤操作:
- 转到 Google Cloud Platform 控制台中的 VM 实例页面。
- 单击要添加启动脚本的实例。
- 单击页面顶部的“编辑”按钮。
- 点击“启用连接到串行端口”
- 在自定义元数据下,单击添加项目。
- 将“Key”设置为“startup-script”,并将“Value”设置为此脚本:
#! /bin/bash useradd -G sudo USERNAME echo 'USERNAME:PASSWORD' | chpasswd
- 单击保存,然后单击页面顶部的重置。您可能需要等待一段时间才能重新启动实例。
- 点击页面中的‘连接到串行端口’。
- 在新窗口中,您可能需要等待一会儿,然后按一次键盘上的 Enter 键;然后,您应该会看到登录提示。10.使用您提供的用户名和密码登录。
然后在实例内部,您需要通过验证客户环境来获取不起作用的内容:
第一的:查看串行控制台是否列出了以下几行:
Started Google Compute Engine Accounts Daemon
Started Google Compute Engine IP Forwarding Daemon
Started Google Compute Engine Clock Skew Daemon
Started Google Compute Engine Instance Setup
Started Google Compute Engine Startup Scripts
Started Google Compute Engine Shutdown Scripts
Started Google Compute Engine Network Setup
第二:验证客户环境的软件包是否已安装,在串行输出中运行命令
apt list --installed | grep google-compute
它应该列出以下行:
google-compute-engine
google-compute-engine-oslogin
python-google-compute-engine
python3-google-compute-engine
第三:您需要通过运行此命令来验证客户环境的所有服务是否正在运行:
sudo systemctl list-unit-files | grep google | grep enabled
它应该列出以下行:
google-accounts-daemon.service enabled
google-ip-forwarding-daemon.service enabled
google-clock-skew-daemon.service enabled
google-instance-setup.service enabled
google-shutdown-scripts.service enabled
google-startup-scripts.service enabled
google-network-setup.service enabled
如果客户环境中的某些软件包缺失或未运行,则应按照以下步骤安装它文档。