Vagrant VM的SSH基础


23

我正在构建具有以下要求的无业游民机器(Ubuntu 12.04):

  • 通过Vagrant对具有sudo-privileges的用户进行SSH访问。

我已经ssh-keygen在主机上(通过)生成了公共/私有密钥,并将公共密钥移到authorized_keys了客户机上的文件中。而且我尝试了无密码的SSH。

vagrant ssh使用启用密码的SSH密钥键入以下几件事:

  • 我必须在主机上键入密钥短语,然后才能通过SSH进入来宾VM。
  • 每次我输入正确的关键字短语都不会被接受。

导致我得到以下错误消息:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

然后,我尝试了无密码的ssh。

vagrant ssh
vagrant@127.0.0.1's password: 

??

我从未设置过无业游民的用户!应该是user@hostname我设置的那样,并且可以在VirtualBox中启动VM时确认工作。

如何获得私密的ssh密钥以与流浪汉一起正常工作?在主机上做什么,在访客上做什么?

更新资料

在VirtualBox中,VM处于活动状态,但除了以下问题外,我无法从vagrant控制台执行以下任何命令vagrant ssh

vagrant up vagrant halt

唯一有效的无用命令是vagrant suspend。当我使用它时,我实际上可以通过停止机器vagrant halt。这是输出:

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Answers:


21

我正在为涉及此线程的任何人添加此解决方案:

首先在主机上打开此文件:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

确认已将config.ssh.private_key_path其设置为您的私钥文件。如果没有更新

SSH到带有默认密码的流浪者盒子

$ vagrant ssh (default pwd = ‘vagrant’]

一旦在框中:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

将公共密钥添加到此文件并保存文件,然后退出框

vagrant@lucid64:~$ exit

回到本地机器

$ vagrant halt
$ vagrant up

这对我有用


谢谢您-我想知道是否可以将不同于vagrantpub / priv密钥对的用户以ssh的身份放入一个盒子?进一步,您可以像这样在Vagrantfile中将路径设置为所需的ssh私钥?
罗德

2
我找不到文件夹“ include”。我只找到文件夹0,然后是virtualbox,然后是4个文件-box.ovf,box-disk1.vmdk,metadata.json,Vagranfile。有什么想法怎么办?
Darius.V,2015年

3

尽管不是因为SSH密钥问题,但我遇到了同样的问题。启动计算机时,Virtualbox可以正常工作,并且可以使来宾正常工作。我自己可以通过SSH进入计算机,vagrant ssh尽管它要求我输入密码,但仍可以工作。我登录并在来宾的/var/log/auth.log中找到以下内容:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

我进入查看/ home / vagrant的权限:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

不好,我一直在做的其他事情无意中更改了/ home / vagrant目录的权限。以下内容解决了该问题:

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

之后,我关闭了机器,再次启动它,vagrant做得很好。:-)


好提示。我还必须做chmod -R 755 /home/vagrant/.ssh
Wisbucky

2

尝试将无业游民的不安全公共密钥复制.ssh/authorized_keys到访客框中的文件中。

希望这能解决您的ssh问题。

如果您想使其安全,则可以通过将自己的.ssh / id_rsa.pub复制到上述文件中来实现。并设置

config.ssh.private_key_path ='〜/ .ssh / id_rsa'

在您的Vagrantfile中。


2

对于任何遇到此问题的人。我花了好长时间才修好。(但是,修复很容易!!)因此,根据Vagrant文​​档,“ vagrant”用户有一个默认密码,即“ vagrant”,没有单引号。您可以在其官方网站http://docs.vagrantup.com/v2/boxes/base.html上了解更多信息。


2

我有类似的问题。最终,我通过以下方法解决了问题:

  • 确保Vagrant和Virtualbox都是最新的
  • 通过安装vagrant-vbguestplugin 来确保VirtualBox Guest Additions是最新的:的GitHub 红宝石

    vagrant plugin install vagrant-vbguest
    

0

请按照以下步骤解决Mac OS High Sierra中的问题:-

  1. 我正在使用流浪汉5.X版本
  2. 首先下载虚拟盒子,不要安装它。
  3. 转到系统偏好设置->隐私,然后单击允许美国下载。
  4. 锁定以上更改并安装虚拟盒。
  5. 您将获得虚拟盒安装成功完成的消息。
  6. 现在转到终端类型无所事事--provision
  7. 如果有脚本,它将开始运行脚本并为您下载虚拟盒。8.您将收到消息“完成”

  8. 确保虚拟盒安装正确,然后仅运行vagrant命令。如果您遇到问题,请通过运行pkg随附的卸载脚本来卸载虚拟盒,然后尝试重新安装。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.