Vagrant VM의 SSH 기본 사항

Vagrant VM의 SSH 기본 사항

다음 요구 사항을 충족하는 방랑 머신(Ubuntu 12.04)을 만들고 있습니다.

  • sudo 권한이 있는 사용자에게 Vagrant를 통한 SSH 액세스.

ssh-keygen호스트에서 (을 통해) 공개/개인 키를 생성하고 공개 키를 authorized_keys게스트의 파일로 이동했습니다. 그리고 비밀번호 없는 SSH를 사용해 보았습니다.

vagrant ssh비밀번호가 활성화된 SSH 키를 사용하여 입력하면 다음과 같은 일이 발생합니다 .

  • 게스트 VM에 SSH를 연결하려면 호스트 시스템에 키 문구를 입력해야 합니다.
  • 나는 다음을 입력할 때마다옳은핵심 문구는 허용되지 않습니다.

결과적으로 다음과 같은 오류 메시지가 나타납니다.

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
[email protected]'s password: 

??

나는 결코 방랑하는 사용자를 설정하지 않았습니다! user@hostname내가 설정한 대로 여야 하며 VirtualBox에서 VM을 부팅할 때 작동을 확인할 수 있습니다.

vagrant에서 개인 SSH 키가 제대로 작동하도록 하려면 어떻게 해야 합니까? 호스트에서는 무엇을 해야 하고, 게스트에서는 무엇을 해야 할까요?

업데이트

VirtualBox에서 VM은 활성화되어 있지만 다음 문제 외에도 방랑 콘솔에서 다음 명령을 수행할 수 없습니다 vagrant ssh.

vagrant up vagrant halt

작동하는 유일한 vagrant 명령은 입니다 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.

답변1

이 스레드에 오시는 모든 분들을 위해 다음 솔루션을 추가하겠습니다.

먼저 호스트 시스템에서 이 파일을 엽니다.

$ 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

이것은 나를 위해 일했습니다

답변2

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는 그 일을 잘 해냈습니다. :-)

답변3

복사해 보세요방랑하는 안전하지 않은 공개 키.ssh/authorized_keys손님 상자에 파일로 .

이를 통해 SSH 문제가 해결되기를 바랍니다.

보안을 유지하려면 자신의 .ssh/id_rsa.pub를 앞서 언급한 파일에 복사하면 됩니다. 그리고 설정

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

Vagrantfile에 있습니다.

답변4

비슷한 문제가있었습니다. 결국 나는 다음과 같이 해결했습니다.

  • Vagrant와 Virtualbox가 모두 최신 상태인지 확인
  • vagrant-vbguest플러그인을 설치하여 VirtualBox 게스트 추가가 최신 상태인지 확인GitHubRubyGems:

    vagrant plugin install vagrant-vbguest
    

관련 정보