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 10 和 vagrant 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
已重置相同。
当我在 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 10 和 vagrant 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
已重置相同。