[server] Vagrant Virtual Machine으로 SSH 할 수 없음

10.0.0.23호스트 이름으로 IP 주소에 설치된 로컬 Vagrant 시스템 lamp-vm.

vagrant ssh명령을 사용하면 잘 연결하고 필요한 모든 것을 할 수 있습니다.

이것은 오류를 만듭니다

$ ssh vagrant @ lamp-vm -v -v

debug1 : 주소 10.0.0.23 포트 22에 연결 : 연결 시간 초과
ssh : 호스트 램프 -vm 포트 22에 연결 : 연결 시간 초과

/etc/hosts파일에 포함되어 있습니다 10.0.0.23 lamp-vm.

내 .ssh / config 파일은 다음과 같습니다

호스트 lamp-vm
사용자 vagrant
IdentityFile ~ / .ssh / vagrant

나는 ssh 명령을 사용하거나 사용하지 않고 시도했습니다 -i /path/to/.sh/identity_file.

SSH를 사용하여 Vagrant Virtual Machine에 어떻게 연결합니까?



답변

나는이 문제에 직면 해 있었고 이것이 내 최종 시스템으로 호스트 시스템의 어느 곳에서나 내 방랑자 시스템으로 ssh 할 수있었습니다.

방랑자 파일 :

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

기계로 ssh :

ssh vagrant@192.168.33.10

비밀번호를 묻는 메시지가 표시됩니다 (기본값은 방랑자 임).

vagrant@192.168.33.28's password:

그리고 붐, 당신은있어!

PS * 호스트 컴퓨터의 어느 곳에서나 scp를 사용할 수 있습니다.

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file


답변

오래되었지만 답변이 없으므로 하나를 제공하겠습니다. 명령:

vagrant ssh

동등하다

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

변경 명령을 적절하게 변경 한 경우 이것이 기본 동작입니다. 먼저 Vagrant는 손님 상자에 방랑자 사용자를 만들고 해당 사용자를 사용하여 ssh합니다. 이전 사람들이 말했듯이 기본적으로 호스트의 포트 2222에서 게스트의 포트 22로 트래픽을 전달합니다 (방랑자를 사용할 때 해당 메시지가 표시됨). 마지막으로 Vagrant는 ssh 세션을위한 키를 생성하므로 ssh를 통해 연결할 때 공개 키를 인수로 제공해야합니다.


답변

이것은 의도적으로 설계된 동작입니다.

Vagrant는 포트 포워딩을 사용하는 VirtualBox NAT 모드 를 사용합니다.

NAT 모드를 사용하여 VM에 직접 SSH 할 수 없습니다.

‘vagrant ssh’를 사용하면 vagrant가 포트 포워딩을 수행하므로 걱정할 필요가 없습니다. 기본적으로 포트 2222의 localhost에 연결되지만 포트 번호 충돌을 정렬하려고 시도합니다.

VM에 직접 SSH해야하는 경우 VM을 호스트 전용 또는 브리지 된 네트워킹 모드로 전환하십시오.


답변

나는 이것을 주석으로 추가했을 것이지만, 현재 충분한 담당자가 없습니다. 여기에서 VM을 브리지 모드로 설정하는 방법을 작성했습니다.

/ubuntu/116861/setting-up-a-network-between-a-host-and-guest-virtual-machine/116909#116909

이 정보가 도움이 되길 바랍니다.


답변

윈도우 / 방랑자 / 우분투

이것이 저에게 효과적이며 ssh 클라이언트에서 이것을 실행하여 이것이 효과가 있는지 신속하게 파악할 수 있습니다.

ssh vagrant@127.0.0.1 -p 2222 -v

-v는 상세 모드로 설정하고 디버그 정보를 표시합니다.

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 2015 년 12 월 3 일
debug1 : 127.0.0.1에 연결 [127.0.0.1] 포트 2222.
debug1 : 연결이 설정되었습니다.
debug1 : 신원 파일 /home/Jamie/.ssh/id_rsa 유형 1
debug1 : key_load_public : 해당 파일 또는 디렉토리 없음
debug1 : 신원 파일 /home/Jamie/.ssh/id_rsa-cert type -1
debug1 : key_load_public : 해당 파일 없음 또는 디렉토리
debug1 : 식별 파일 /home/Jamie/.ssh/id_dsa 유형 -1
debug1 : key_load_public : 해당 파일 또는 디렉토리
debug1 : 식별 파일 /home/Jamie/.ssh/id_dsa-cert 유형 -1
debug1 : key_load_public : 해당 없음 파일 또는 디렉토리
debug1 : ID 파일 /home/Jamie/.ssh/id_ecdsa type -1
debug1 : key_load_public : 해당 파일 또는 디렉토리 없음
debug1 : ID 파일 /home/Jamie/.ssh/id_ecdsa-cert 유형 -1
debug1 : key_load_public : 해당 파일 또는 디렉토리 없음
debug1 : ID 파일 /home/Jamie/.ssh/id_ed25519 유형 -1
debug1 : key_load_public : 해당 파일 또는 디렉토리 디버그 없음
: ID 파일 /home/Jamie/.ssh/id_ed25519-cert type -1
debug1 : 프로토콜 2.0 디버그 모드에 대한 호환성 모드 활성화 1
: 로컬 버전 문자열 SSH-2.0-OpenSSH_7.1
debug1 : 원격 프로토콜 버전 2.0, 원격 소프트웨어 버전 OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 디버그 1
: 일치 : OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * compat 0x04000000
debug1 : ‘ vagrant ‘로 127.0.0.1:2222 인증 ‘
debug1 : SSH2_MSG_KEXINIT
가 127.0.0.1에 의해 닫힌 연결을 보냈습니다.

따라서 … SSH2_MSG_KEXINIT는 키가 교환되고 있음을 의미합니다. 이것은 곧 실패합니다 …

이 경우 키를 삭제하고 VM에서 키를 다시 생성했습니다. ( http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html )

$ ls -al / etc / ssh / ssh
$ sudo rm -r / etc / ssh / ssh

$ sudo dpkg-openssh-server 재구성

키가 다시 생성되면 Vagrant Box에 SSH로 연결할 수있었습니다.


답변

가상 머신이 파괴
가상 머신 리로디드
일 모두를

이유는 확실하지 않지만 첫 번째 프로비저닝에서 무언가가 제대로로드되지 않았습니다.


답변

이 의견을 확인하십시오 : https://github.com/mitchellh/vagrant/issues/1936#issuecomment-21139674

기본적으로 개인 네트워킹을 사용하더라도 127.0.0.1에서는 방랑자가 여전히 ssh를 수행합니다. 개인 IP / 호스트 이름 대신 ssh 명령 @ 127.0.0.1을 사용해보십시오.