Vagrant Virtual Machine으로 SSH 할 수 없음


11

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에 어떻게 연결합니까?

답변:


8

나는이 문제에 직면 해 있었고 이것이 내 최종 시스템으로 호스트 시스템의 어느 곳에서나 내 방랑자 시스템으로 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

이것이 작동하는 동안 매우 취약합니다. Vagrantfile이 VirtualBox VM의 / etc / network / interfaces를 약간 수정하여 SSH 연결이 끊어졌습니다. 로컬 호스트 연결 ( ssh -p 2222 vagrant@localhost)에는 영향을 미치지 않습니다.
RichVel

8

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

vagrant ssh

동등하다

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

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


이것은 정답입니다. 예를 들어 mobaxterm과 함께 문제없이 작동합니다. 당신은 PRIVATE_KEY에 대한 전체 경로를 지정하는 것이 필요
sineverba

6

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

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

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

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

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


고마워 필립하지만 어떻게 해결할 수 있습니까? 미숙 한 죄송합니다.
csi

1
호스트 전용 모드를 사용하고 있는데 문제가 지속됩니다.
csi

허용되는 답변이어야합니다. 이것을 이해하는 데 매우 도움이되었습니다-포트 2222에서 localhost를 통해가는 것은 작동하는 Vagrant 설정의 경로였습니다 (어떤 이유로 insecure_private_key 키를 아직 작동시킬 수 없었습니다). 나는 표준 '안전하지 않은 개인 키'가 Vagrantfile에서 다른 개인 키와 사용자 이름을 지정했지만 로컬 호스트 포트 2222 부분을 변경할 필요가 없었습니다.
RichVel


3

윈도우 / 방랑자 / 우분투

이것이 저에게 효과적이며 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로 연결할 수있었습니다.


0

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

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


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