You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绕过密钥认证SSH登录Vagrant创建的本地Linux服务器

第一步:修复虚拟机启动报错

  • 先关闭宿主机虚拟化冲突程序:如果开启了Hyper-V、WSL2、Docker Desktop,会和VirtualBox硬件虚拟化冲突。Windows系统可执行管理员权限命令提示符,运行bcdedit /set hypervisorlaunchtype off,重启宿主机后重试。Mac系统需先退出Parallels等其他正在运行的虚拟机程序再操作。
  • 重置虚拟机配置:打开VirtualBox图形界面,找到对应的default虚拟机,右键点击「设置」,检查内存分配是否超过宿主机可用内存、虚拟磁盘文件是否被误删,修正异常配置后手动点击VirtualBox内的启动按钮,跳过Vagrant启动流程测试。

第二步:绕过SSH直接登录系统修改配置

只要虚拟机可以正常启动,无需走SSH通道即可修改配置:

  • 虚拟机启动后,在VirtualBox弹出的控制台窗口直接输入student或root用户的原有密码登录,本地控制台登录不受SSH服务配置限制。
  • 登录后执行sudo nano /etc/ssh/sshd_config,将PasswordAuthentication参数改回yes,保存后执行sudo service ssh restart重启SSH服务,即可恢复密码登录能力。
  • 若忘记用户密码,可在虚拟机启动时按Shift调出Grub引导菜单,选择高级选项中的recovery mode,进入root shell后执行passwd student重设student用户密码,再修改SSH配置即可。

第三步:修复原有SSH配置缺陷

你之前仅配置了student用户的公钥,未同步配置vagrant用户的公钥,所以vagrant用户登录会失败:

  • 登录系统后执行cd /home/vagrant,创建.ssh目录和authorized_keys文件,对应设置权限为chmod 700 .ssh、chmod 644 .ssh/authorized_keys,将本地公钥内容粘贴进vagrant用户的authorized_keys文件即可。
  • 也可以在sshd_config末尾添加规则单独给vagrant用户开放密码登录:
    Match User vagrant
    PasswordAuthentication yes
    
    保存后重启SSH服务即可。

应急方案

如果仅需要读取/修改虚拟机内的文件,无需启动系统:使用VirtualBox的虚拟磁盘挂载工具,将虚拟机对应的vdi格式磁盘直接挂载到宿主机,直接编辑内部的/etc/ssh/sshd_config文件,修改完成后卸载磁盘再启动虚拟机即可恢复SSH登录能力。

内容的提问来源于stack exchange,提问作者Kaushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:36:03