Vagrant:权限被拒绝(公钥)

问题描述 投票:0回答:8

通过 ssh username@ip 进行 ssh 时,我收到 权限被拒绝(公钥) 错误,而当我们执行 vagrant ssh

时 ssh 正在工作

流浪者文件:

Vagrant.configure("2") do |config|
 config.vm.box = "ubuntu/xenial64"
 config.vm.network "forwarded_port", guest: 80, host: 8071
 config.vm.network "private_network", ip: "192.168.33.71"
end

我正在终端上尝试 ssh [电子邮件受保护]

出现错误:权限被拒绝(公钥)

linux ssh vagrant ubuntu-16.04
8个回答
12
投票

在与 vagrant box 的连接中使用私钥

ssh -i .vagrant/machines/default/virtualbox/private_key [email protected]


11
投票
config.vm.synced_folder '.' and '/home/vagrant/' caused this problem.
Because the configure makes home directory on the host overwritten and destroy .ssh settings on the host.
I got the same problem a few seconds ago. I checked the .ssh was overwritten by Vagrant GUI.

在摘要中,您的同步文件夹覆盖了虚拟机中的 .ssh 文件夹,因此您无法使用 ssh 登录。

答案来自本期


5
投票

请简要说明您的问题,即您从何处进行 SSH 连接。如果您通过 Vagrant box 进行 SSH 连接..那么您始终必须在任何命令之前使用 vagrant。如果仅使用 vagrant ssh [电子邮件受保护] 将不起作用。

vagrant ssh 用户@vmmachine

如果您使用默认 vagrant 用户以外的其他用户,则必须将主机公钥内容复制到来宾机用户的authorized_keys 文件中。(仅当您使用 vagrant 通过 SSH 连接到来宾机时才使用)

授权密钥的默认位置:

/home/ubuntu/.ssh/authorized_keys


3
投票

我猜测如果您尝试

vagrant ssh
,正如@Anurag 提到的那样,您就能够连接。

要修复

Permission denied (publickey)
错误,以便您能够从主机上的任何位置通过 ssh 连接到盒子,您可以创建一个 ssh 密钥并将公钥复制到客户机上的authorized_keys 文件中。
ssh-keygen
您可以选择不同的文件来保存密钥。 然后用
ssh-add <path to your key>
添加身份。


3
投票
config.vm.provision :shell, :inline => "sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config; sudo systemctl restart sshd;", run: "always"

我能够通过上述配置解决


0
投票

我对

debian/jessie64
盒子也有同样的问题。我在 libvirt 上运行 Vagrant。我尝试了一切,但没有任何帮助,然后我拿了
centos/7
盒子,一切都很好。我想这与
cloud-init
盒子本身配置不正确有关。


0
投票

我在这里尝试了一切,但没有成功。所以我回到 vagrant cloud 并下载了另一个 ubuntu18 软件包,在询问密码(vagrant)后它就工作了


-1
投票

假设您的主目录(在主机上)中已经有

id_rsa.pub
键,那么您可以简单地配置
Vagrantfile
,如下所示:

config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "/home/vagrant/.ssh/id_rsa.pub"
config.vm.provision :shell, :inline => "cat /home/vagrant/.ssh/id_rsa.pub >> /home/vagrant/.ssh/authorized_keys", run: "always"

接下来你将能够使用 ssh

ssh vagrant@vm_ip_address

© www.soinside.com 2019 - 2024. All rights reserved.