本地运行从Google Compute Engine导出的Debian 10 VMDK镜像时的自动登录配置问题
本地运行从Google Compute Engine导出的Debian 10 VMDK镜像时的自动登录配置问题
嘿,这个问题我之前帮朋友处理过,其实原因很明确——Google Cloud上的Debian镜像依赖GCE的SSH密钥注入服务来实现无密码自动登录,本地VMware环境没有这个云服务支持,所以得手动调整配置。给你几个实用的方案,按需选就行:
方案一:重置用户密码(最直接的临时登录方式)
如果只是想先登录进去再做后续配置,重置密码是最快的:
- 启动VM后,在GRUB启动菜单(开机时按住Shift键调出)里选择「Debian GNU/Linux 的高级选项」
- 进入recovery模式,选择「root - Drop to root shell prompt」
- 先把根文件系统挂载为可读写模式:
mount -o remount,rw / - 输入
passwd your-username(把your-username换成你在GCE实例里用的用户名,通常是你创建实例时指定的,或者默认是你GCP账号的邮箱前缀),然后按照提示设置新密码 - 输入
reboot重启系统,之后就能用这个密码登录了
方案二:配置SSH密钥登录(和GCE一致的安全方式)
如果你习惯用SSH密钥无密码登录,可以这么配置:
- 先按照方案一重置密码,登录到VM系统里
- 编辑SSH服务配置文件:
sudo nano /etc/ssh/sshd_config - 确认以下配置项是启用状态(如果前面有
#注释就去掉,或者修改值):PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 PasswordAuthentication yes # 先保持开启,等配置完成后再关闭也可以 - 保存退出(按
Ctrl+O回车,再按Ctrl+X),重启SSH服务:sudo systemctl restart sshd - 在你的本地Mac机器上(如果还没有SSH密钥)生成密钥:
ssh-keygen -t ed25519,一路按回车用默认配置即可 - 把本地的公钥复制到VM的用户目录下:
- 可以用scp命令:
scp ~/.ssh/id_ed25519.pub your-username@vm-ip:~/.ssh/(vm-ip是VMware给VM分配的本地IP) - 或者在VM里直接编辑
~/.ssh/authorized_keys文件,把本地公钥的内容粘贴进去
- 可以用scp命令:
- 最后设置正确的权限(这一步很重要,否则SSH会拒绝密钥登录):
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - 之后你就可以用
ssh your-username@vm-ip无密码登录了,要是想更安全,可以把sshd_config里的PasswordAuthentication改成no,然后重启SSH服务
方案三:配置控制台自动登录(适合本地直接进入系统)
如果希望VM启动后直接自动登录到控制台,不用手动输入账号密码:
- 登录系统后,先创建getty的配置目录(如果不存在的话):
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d - 编辑自动登录配置文件:
sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf - 粘贴以下内容,注意把
your-username换成你的实际用户名:[Service] ExecStart= ExecStart=-/sbin/agetty --autologin your-username --noclear %I $TERM - 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload - 重启系统后,控制台就会自动登录到你的用户账号了
备注:内容来源于stack exchange,提问作者opike
相关产品推荐
相关产品推荐

