Локальная машина Vagrant установлена на IP-адресе 10.0.0.23
с именем хоста lamp-vm
.
С помощью vagrant ssh
команда, я могу нормально подключиться и делать все, что мне нужно.
Это создает ошибку
$ ssh vagrant @ лампа-vm -v -v
debug1: подключиться к адресу 10.0.0.23 порт 22: время ожидания истекло
ssh: подключение к хосту lamp-vm, порт 22: истекло время ожидания подключения
Мой /etc/hosts
файл содержит 10.0.0.23 lamp-vm
.
Мой файл .ssh / config выглядит как
Хост лампа-vm
Пользователь бродяга
IdentityFile ~ / .ssh / бродяга
Я пробовал команду ssh с и без -i /path/to/.sh/identity_file
также.
Как мне подключиться к моей Vagrant Virtual Machine с помощью SSH?
Он старый, но, поскольку ответа нет, я его предоставлю. Команда:
vagrant ssh
Является эквивалентом
ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key
Это поведение по умолчанию, если вы что-то изменили, измените команду соответствующим образом. Прежде всего, Vagrant создаст бродячего пользователя в вашем гостевом ящике, и вы будете использовать этого пользователя для ssh. Как говорили предыдущие люди, по умолчанию он будет перенаправлять трафик с порта 2222 на вашем хосте на порт 22 вашего гостя (когда вы используете vagrant up, вы видите это сообщение). И, наконец, Vagrant создает ключи для сеанса ssh, поэтому вам не нужно этого делать, поэтому вам нужно предоставить открытый ключ в качестве аргумента при подключении через ssh.
Я тоже столкнулся с этой проблемой, и это была моя последняя конфигурация, которая позволила мне подключиться к моей бродячей машине по ssh из любой точки моего хоста.
Vagrantfile:
...
# 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):
vagrant@192.168.33.28's password:
И бум, ты в игре!
PS * Вы также можете использовать scp где угодно на вашем хост-компьютере:
scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file
Такое поведение является особенностью.
Бродяга использует Режим VirtualBox NAT что означает использование переадресации портов.
Вы не можете напрямую подключиться к виртуальной машине по SSH в режиме NAT.
Использование vagrant ssh означает, что vagrant выполнит перенаправление портов за вас, поэтому вам не о чем беспокоиться. Я думаю, что по умолчанию он будет подключаться к localhost через порт 2222, но он также попытается отсортировать любые конфликты номеров портов.
Если вам нужно подключиться к виртуальной машине напрямую по SSH, переключите виртуальную машину в режим сети только для хоста или в режим моста.
Я бы добавил это в качестве комментария, но в настоящее время у меня недостаточно репутации для этого. Я написал инструкцию по настройке виртуальной машины в мостовой режим:
Надеюсь, вы найдете это полезным!
Windows / Vagrant / Ubuntu
Это то, что сработало для меня, и вы можете быстро понять, будет ли это работать, запустив это на клиенте 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 3 Dec 2015
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file /home/Jamie/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to 127.0.0.1:2222 as 'vagrant'
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 127.0.0.1
Так... SSH2_MSG_KEXINIT
означает обмен ключами. Вскоре это не удается ...
В этом случае я удалил свои ключи и восстановил их, сделав это на виртуальной машине. (http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html)
$ ls -al /etc/ssh/ssh*key
$ sudo rm -r /etc/ssh/ssh*key
$ sudo dpkg-reconfigure openssh-server
Как только мои ключи были регенерированы, я смог подключиться к моему Vagrant Box по SSH.
Уничтожили виртуальную машину
Перезагрузили виртуальную машину
Все заработало
Не знаю почему, но очевидно, что что-то не загрузилось должным образом при первой подготовке.
Посмотрите этот комментарий: https://github.com/mitchellh/vagrant/issues/1936#issuecomment-21139674
По сути, даже при использовании частной сети vagrant по-прежнему использует ssh на 127.0.0.1. Попробуйте эту команду ssh @ 127.0.0.1 вместо вашего личного IP-адреса / имени хоста.