Vagrant up을 사용하여 VM에 인증하는 방법은 무엇입니까?


9

Vagrant Up 동안 인증 실패, Vagrant ssh 및 ssh vagrant @ localhost -p2222 작동

부팅시 Vagrant를 사용하여 쉘 스크립트를 실행하고 싶습니다. VM이 vagrant up다음을 사용하여 시작된 동안 Vagrant가 인증 할 수 없습니다 .

c:\temp\helloworld>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'helloworld'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: helloworld_default_1398419922203_60603
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    ...

실행 후 and를 CTRL + C사용하여 VM에 인증 할 수 있습니다vagrant sshssh vagrant@localhost -p2222

방랑자 파일

기본 Vagrantfile을 사용하고 호스트 이름 만 변경했습니다.

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "helloworld"
  ...

방랑자 버전

c:\temp\helloworld>vagrant --version
Vagrant 1.5.1

질문

?를 사용하여 VM에 인증하는 방법은 vagrant up무엇입니까?

답변:


6

이 문제는 Vagrant 상자에 공개 키가 없기 때문에 발생했습니다. 다음 두 가지 옵션 중 하나가 문제를 해결합니다.

첫 번째 옵션은 Packer를 사용하여 새 Vagrant Box를 만드는 것입니다. 다음 스 니펫 을 json 파일에 추가하고 Vagrant 상자를 빌드하십시오.

"provisioners": [{
    "type": "shell",
    "scripts": [
      "scripts/vagrant.sh"
    ]
}]

방랑 한 스크립트 의 내용은 다음과 같습니다.

#!/bin/bash
yum install wget -y

mkdir /home/vagrant/.ssh
wget --no-check-certificate \
    'https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub' \
    -O /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
chmod -R go-rwsx /home/vagrant/.ssh

두 번째 옵션은 여기에vagrant package 지정된 다음 명령 이 실행 된 후 Vagrant 상자 를 다시 패키지하는 것입니다 ( ) .

mkdir -p /home/vagrant/.ssh
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh

이것은 나를 위해 일했다! 궁금한 사람들을 위해 Vagrant는 오래된 유효하지 않은 키를 사용하는 대신 새로운 보안 키를 생성합니다.
Nebojsac

5

먼저 시도 하십시오 : 당신의 컴퓨터 구성에서 어떤 방랑 개인 키 를 확인하십시오

$ vagrant ssh-config

예:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

둘째, 수행 : insecure_private_key 파일의 내용을 자신의 시스템 개인 키 의 내용으로 변경


1

나는 또한 넘어 설 수 없었다 :

기본값 : SSH 인증 방법 : 개인 키

VirtualBox GUI를 사용할 때 OS 프로세서가 일치하지 않는다고 알려줍니다.

BIOS 설정에서 방글라데시를 더 발전시키기 위해서는 반 직관적으로해야했습니다.

비활성화 : 가상화

가능 : VT-X

BIOS에서이 설정을 전환하십시오.


BIOS에서 가상화를 활성화하면 "Vagrant SSH"와 관련된 문제가 해결되었습니다.
Firoz Sabaliya

0

내가 본 많은 스크립트는 공개 키를 가져 오기 위해 이것을 사용합니다.

curl -L https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys

내가 본 문제는 github SSL 인증서가 www.github.com아닌을 위한 것 raw.github.com입니다. 따라서 400오류가 발생합니다. /home/vagrant/.ssh/authorized_keys파일 내용을보고이를 확인할 수 있습니다 .

-k옵션을 사용하여 SSL 인증서 확인을 무시하십시오.

curl -L -k https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys

0

VM에 네트워크 액세스 권한이 있는지 확인하십시오. 가상 박스를 사용하는 경우 컴퓨터 설정, 네트워크 탭으로 이동하여 케이블 연결이 선택되어 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.