Vagrant 拒绝许可

Permission denied with Vagrant

当我在 windows 10 笔记本电脑上的项目中执行 vagrant ssh 时,出现此错误:

vagrant@127.0.0.1: Permission denied (publickey).

当我删除 .vagrant/machines/default/virtualbox/private_key 并再次执行 vagrant ssh 时,我可以访问虚拟机。

但是当我退出 VM 并执行 `vagrant halt' 时,我得到了这个错误:

==> default: Attempting graceful shutdown of VM... default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... translation missing: en.vagrant_ps.errors.powershell_error.powershell_error

在我看来,它试图添加我的 SSH 密钥,但出了点问题。知道我该如何解决这个问题吗?

您只需 运行 在您的 cmd 中执行以下命令:

set VAGRANT_PREFER_SYSTEM_BIN=0

vagrant ssh

windows 10vagrant 2.1.5

下成功测试

您还可以看到:https://www.vagrantup.com/docs/other/environmental-variables.html#vagrant_prefer_system_bin

我解决了错误:

vagrant@127.0.0.1: Permission denied (publickey)

正在编辑我的 Vagrantfile。

Vagrant 似乎不喜欢这个配置:

config.vm.synced_folder "app", "/home/vagrant"

将其编辑为:

config.vm.synced_folder "app", "/vagrant"

问题可能是 sshClient windows 功能拦截了操作,尝试以管理员身份打开 powershell 并 运行 以下内容:

Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

如果还是不行,那就重新安装sshclient

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

您还可以检查文件的权限

.vagrant/machines/default/virtualbox/private_key

在我的例子中,此文件的权限是针对未知用户的(可能来自以前的 OS 安装)- 将此文件的权限设置为我自己解决了问题

当我指向 private_key 时它对我有用(首先检查它的权限)

ssh -i ${vagrant_home}/.vagrant/machines/default/virtualbox/private_key vagrant@127.0.0.1 -p 2222

有效,但我想添加一些进一步的解释。

set VAGRANT_PREFER_SYSTEM_BIN=0

Vagrant 将默认使用 Windows 上提供的 SSH 系统。此环境变量还可用于禁用该行为,通过将其设置为 0 来强制 Vagrant 使用嵌入式 SSH 可执行文件。

我还使用 Vagrant halt 来清理以前的安装。然后,当我再次配置它时,我遇到了与 OP 相同的错误。

我认为 Windows 提供的 SSH 无法正常工作,使用此 VAGRANT_PREFER_SYSTEM_BIN 已重置相同。