同步来宾主文件夹时权限被拒绝(公钥)

Permission denied (publickey) when syncing guest home folder

我看到很多人都遇到了这个错误,但 none 显然是出于与我相同的原因。在我的情况下解释原因会很有用。

将此添加到我的 vagrant 文件后:

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

我在使用 vagrant ssh 时遇到以下错误:

vagrant@127.0.0.1: Permission denied (publickey)

当我删除 synced_folder 行时,错误不再显示并且 vagrant ssh 工作正常。

发生了什么,为什么我不能这样做?

当您将来宾配置为在 /home/vagrant 处有一个同步文件夹时,它会用同步文件夹的内容覆盖整个文件夹。 Vagrant 将它的密钥放在 ~/.ssh/authorized_keys 文件中,这允许它通过 ssh 进入来宾。

我的个人设置如下:

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

这样您就可以在根目录中创建一个新目录,而不会覆盖 ssh 密钥文件。

希望这对您有所帮助,此致。

A HACK:

您也可以先在主机中创建 .ssh/authorized_keys

然后运行vagrant ssh-config得到你私钥的位置。

然后 运行 ssh-keygen -y -f ${your private key} 得到你的 public 钥匙。

最后,将内容复制到主机.ssh/authorized_keys。不要忘记附加 vagrant.