Ошибка аутентификации Vagrant SSH

147

Проблема с SSH-аутентификацией:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> 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: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    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...
    default: Error: Authentication failure. Retrying...

Я могу Ctrl+Cвыйти из цикла аутентификации, а затем успешно выполнить ssh вручную.

Я выполнил следующие действия на гостевой коробке:

  • Включено Remote Loginдля All Users.

  • Создан ~/.sshкаталог с 0700разрешениями.

  • Создан ~/.ssh/authorized_keysфайл с 0600разрешениями.

  • Вставил этот открытый ключ в~/.ssh/authorized_keys

Я также попытался использовать частную (hostonly) сеть вместо общедоступной (мостовой) сети, используя эту строку в Vagrantfile:

config.vm.network "private_network", ip: "172.16.177.7"

Я получаю тот же вывод (кроме Adapter 2: hostonly), но потом не могу ssh в ручную.

Я тоже попробовал config.vm.network "private_network", ip: "10.0.0.100".

Я также попытался установить config.ssh.passwordв Vagrantfile. Это делает вывод, SSH auth method: passwordно все еще не аутентифицируется.

И я также попытался восстановить коробку и перепроверить все вышеизложенное.

Похоже, что другие имели успех с этой конфигурацией , поэтому, должно быть, я что-то не так делаю.

Я нашел эту тему и включил графический интерфейс, но это не помогает.

ic3b3rg
источник

Ответы:

1

Убедитесь, что ваш первый сетевой интерфейс - это NAT. Другой второй сетевой интерфейс может быть чем угодно, когда вы создаете коробку. Не забывайте пользователя Vagrant, как обсуждалось в ветке Google.

Удачи.

user3509054
источник
172

Для общей информации: по умолчанию для ssh-connect вы можете просто использовать

пользователь: vagrantпароль:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

Сначала попробуйте: посмотреть, что такое vagrant insecure_private_keyв конфигурации вашего компьютера

$ 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на содержимое личного ключа вашей личной системы.

Или используйте: Добавьте его в Vagrantfile:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path ваш локальный закрытый ключ
  2. Ваш закрытый ключ должен быть доступен локальному ssh-агенту. Вы можете проверить с ssh-add -L. Если его нет в списке, добавьте егоssh-add ~/.ssh/id_rsa
  3. Не забудьте добавить свой открытый ключ ~/.ssh/authorized_keysна Vagrant VM. Вы можете сделать это путем копирования и вставки или с помощью такого инструмента, как ssh-copy-id (пользователь: rootпароль: vagrantпорт: 2222)ssh-copy-id '-p 2222 root@127.0.0.1'

Если все еще не работает, попробуйте это:

  1. Удалить insecure_private_keyфайл изc:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Запустить vagrant up(vagrant создаст новый insecure_private_keyфайл)

В других случаях полезно просто установить forward_agent в Vagrantfile :

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

Полезное:

Конфигурирование git может быть с git-scm.com

После настройки этой программы и создания личного системного ключа закрытый ключ будет в вашем профиле пути:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Напоследок - предлагаю вам взглянуть на Ubuntu на Windows 10

shilovk
источник
4
в моем случае это была проблема, потому что config.ssh.private_key_path = "~/.ssh/id_rsa"пришлось убрать эту строку, чтобы обеспечить работу
holms
Все это работало, но мне также пришлось удалить свою запись в известных хостах. У меня были проблемы при перемещении локаций и входе в систему.
Pumphouse
@shilovk +1 Спасибо, спасибо, большое спасибо. «Второй, сделай» сделал свое дело. Опять же, большое спасибо мужчина.
whitesiroi
Это указало мне правильное направление, в моем случае все, что мне нужно было сделать, это удалить файл .vagrant / machines / default / virtualbox / private_key и после запуска vagrant заменил файл на правильный - я бы сделал резервную копию файл на всякий случай
andrux
Первый и самый важный шаг - проверить настройки BIOS, убедитесь, что виртуализация включена.
Бахман.
83

Ничто из вышеперечисленного не помогло мне. Каким-то образом в ящик был добавлен неправильный открытый ключ в файле authorised_keys бродячего пользователя .

Если вы все еще можете ssh на коробке с паролем vagrant (пароль vagrant), т.е.

ssh vagrant@localhost -p 2222

затем скопируйте содержимое открытого ключа из https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub в файл authorised_keys с помощью следующей команды

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

Когда закончите, выйдите из VM и попробуйте vagrant ssh снова. Это должно работать сейчас.

Bizmate
источник
4
запустить vagrant reloadпосле обновления файла авторизованных ключей. Vagrant автоматически обнаружит небезопасный ключ и сгенерирует его для вас. Должен работать потом.
ProfileTwist
47

Если вы сталкиваетесь с этой проблемой на vagrant 1.8.5, проверьте эту ветку на github:

https://github.com/mitchellh/vagrant/issues/7610

Это вызвано в основном проблемой разрешения, обходной путь - просто

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

затем

vagrant reload 

К вашему сведению: эта проблема касается только CentOS, Ubuntu работает нормально.

Лей Сюй
источник
Допустим, у меня есть 5 машин на один бродячий файл. Каждый раз, когда я перезапускаю, мне нужно сделать это для каждой машины. Я там исправить это навсегда для данной бродячей установки с помощью Centos?
Pol
Просто нужно было обновить vagrant до версии 1.8.6, чтобы использовать версию 1.8.5, где присутствовала ошибка
Pol
42

Выполните следующие команды в гостевой машине / VM:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

Тогда сделайте бродячую остановку. Это удалит и восстановит ваши личные ключи.

(Эти шаги предполагают, что вы уже создали или уже имеете каталоги ~ / .ssh / и ~ / .ssh / authorized_keys в своей домашней папке.)

Раджа Этешам
источник
26

По моему опыту, это была удивительно частая проблема с новыми бродячими машинами. Безусловно, самый простой способ решить эту проблему - вместо изменения самой конфигурации - вручную создать необходимые ssh-ключи на клиенте, а затем использовать закрытый ключ на хосте.

  1. Войдите в vagrant machine:, vagrant sshиспользуйте пароль по умолчанию vagrant.
  2. Создание ключей SSH, например, ssh-keygen -t rsa -b 4096 -C "vagrant"( а соответствующим посоветовал руководство GitHub в ).
  3. Переименовать файл открытого ключа (по умолчанию id_rsa.pub), отменяя старый: mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Reload SSH сервис в случае необходимости: sudo service ssh reload.
  5. Скопируйте файл секретного ключа (по умолчанию id_rsa) на хост-компьютер: например, используйте прекрасную комбинацию cat и clipboard cat .ssh/id_rsa, раскрасьте и скопируйте (должны существовать лучшие способы, придумайте один!).
  6. Выход из бродячей машины: logout.
  7. Найдите текущий закрытый ключ, используемый vagrant, посмотрев его конфигурацию: vagrant ssh-config(посмотрите, например, ÌdentityFile "/[..]].private_key".
  8. Замените текущий закрытый ключ тем, который вы создали на хост-машине: например, nano /[...]/private_keyи вставьте из буфера обмена, если ничего не помогло. ( Тем не менее, обратите внимание , что если ваш private_key не специфичен для проекта, а используется несколькими бродячими машинами, лучше настроить путь самостоятельно, чтобы не нарушать работу других отлично работающих машин. config.ssh.private_key_path = "path/to/private_key"Изменить путь так же просто, как добавить строку в Vagrantfile. ) Кроме того, если вы используете компьютер, сгенерированный PuPHPet , вы можете сохранить свой закрытый ключ в файле, puphpet/files/dot/ssh/id_rsaи он будет автоматически добавлен в конфигурацию ssh Vagrantfile.
  9. Проверьте настройки: vagrant sshтеперь должно работать.

Если это так, поздравьте себя, logoutбегите, vagrant provisionесли необходимо, и продолжайте выполнять значимую задачу под рукой.

Если вы все еще сталкиваетесь с проблемами, может оказаться полезным добавить подробный флаг в команду ssh, чтобы упростить отладку. Вы можете передать это (или любой другой вариант) после двойной черты. Например, печатать vagrant ssh -- -v. Не стесняйтесь добавлять столько V, сколько вам нужно, каждый даст вам больше информации.

Sankari
источник
Этот ответ помог мне. Просто чтобы поделиться своим опытом: каким-то образом (возможно, во время установки Capistrano, но это не подтверждено) мой файл author_key был удален на моей гостевой виртуальной машине. Воссоздание с помощью этих шагов сработало, и теперь я могу ssh без запроса пароля. Спасибо.
Мартин Столяр
После удаления обоих ключей (публичного / частного) с хост-компьютера мне удалось повторить и решить с помощью этого процесса
vrwired
Использование Git ускоряет передачу содержимого этого файла.
Lloan
1
этот работал для меня после всего, что я попробовал, потерпел неудачу .. большое спасибо!
Николай
Это сработало для меня. Единственное, что я сделал по-другому, - это использовал ssh vagrant@10.0.0.0 -p 22 (password: vagrant)для входа в ВМ, так как у меня не получалось vagrant ssh. 10.0.0.0это частный IP-адрес, который я установил в своем vagrantfile.
turrican_34
11

Это также может произойти, если вы пытаетесь заставить свою виртуальную машину использовать пользователя root по умолчанию для SSH ....

Например, такая конфигурация в вашем Vagrantfile может вызвать эту ошибку:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Решение: закомментируйте эти строки и попробуйте снова!

Брэд Паркс
источник
2
для меня только настройка config.ssh.username = "vagrant" и config.ssh.password = "vagrant" сделали
свое дело
8

Проблема Я получаю ошибки аутентификации ssh, на коробке, которую я подготовил. Оригинал работал нормально.

Проблема для меня заключалась в том, что мне не хватало закрытого ключа .vagrant/machines/default/virtualbox/private_key. Я скопировал закрытый ключ из того же места с оригинальной коробки и Виолы!

GP89
источник
Я хотел бы добавить, что, как любой хороший разработчик, мы проверяем .vagrantфайлы в git ... и, как таковой, быстрое git checkoutупоминание файла спасает день!
Ян Воан
8

Я нашел способ обойти беспорядок с ключами на Win 8.2, где мне не удалось ни с одним из методов, упомянутых здесь. Может быть интересно, что точно такая же комбинация VirtualBox, Vagrant и коробки работает на Win 7 Ultimate без каких-либо проблем.

Я переключился на аутентификацию по паролю, добавив следующие команды в Vagrantfile:

config.ssh.password = "vagrant"
config.ssh.insert_key = false

Обратите внимание, что я не уверен, что это единственные необходимые изменения, потому что я уже сделал:

  1. Я сгенерировал новую пару ключей RSA и соответственно изменил файл author_keys (все на виртуальной машине, см. Предложения выше и в других местах)

  2. Я скопировал закрытый ключ в тот же каталог, где находится Vagrantfile, и добавил

     config.ssh.private_key_path = "./id_rsa"
    

Но я считаю, что эти изменения не имеют значения. Я потратил много времени, пытаясь, поэтому я не изменил рабочую конфигурацию по понятным причинам :)

Майкл
источник
5

Невозможно запустить vagrant, потому что он застрял и время ожидания?

Недавно у меня произошел «инцидент с водой в ноутбуке», и мне пришлось перейти на новый (кстати, на MAC).

Я успешно запустил и запустил все свои проекты, кроме того, что использовал vagrant.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> 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: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

Он не мог подтвердить подлинность, повторял снова и снова и в конце концов сдался.

** Вот как я вернул его в форму в 3 этапа: **

1 - Найти IdentityFile, используемый vagrant: $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2 - Проверьте открытый ключ в IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Замените '<user-name>'своим пользователем. Это будет выглядеть примерно так:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Войдите в бродячую машину с паролем "vagrant": $ ssh -p 2222 -o UserKnownHostsFile=/dev/null vagrant@127.0.0.1

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
vagrant@127.0.0.1's password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4 - Добавьте открытый ключ в файл author_keys. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Выйдите (crtl + d) и остановите контейнер для бродяги и верните его обратно. $ vagrant halt $vagrant up

Надеюсь, теперь вы будете держать руки в воздухе ...

Я получил это, с небольшой поправкой, из статьи Неда Бэтчелдерса - Нед ты чемпион !!

Анас
источник
Вы сэр гений, или Нед Бэтчелдерс. В любом случае, это исправило мою проблему!
Adsy2010
4

для меня это было решено путем изменения прав доступа к папке .ssh в vagrant home directort (то есть "~ vagrant / .ssh"). Я думаю, что испортил разрешения, когда настраивал ssh-ключи для своего приложения.

Кажется, что файл authorized_keys должен быть rw только для пользователя vagrant, поэтому chmod 600 authorized_keys; то же самое касается самого каталога и его родителя:

так:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Только после того, как я восстановил все эти разрешения, vagrant ssh снова начал работать.

Я думаю, это как-то связано с безопасностью ssh. Он отказывается распознавать сертификаты, если они каким-либо образом доступны за пределами текущего пользователя, поэтому попытки vagrants войти в систему, таким образом, отклоняются.

Роберт
источник
Иногда я не могу измениться, просто запустив sudo chmod 600 authorized_keys, но он все равно остается без изменений. Я думаю, что это как-то связано с тем, что оно также используется в Windows.
Дарий.В
Иногда это случается, если каталог находится в общем ресурсе, например/vagrant/...
Роберт
1
В дополнение к моему ответу я хотел бы проголосовать за этот ответ. На другой моей машине это была именно эта проблема - неправильный владелец каталога /home/vagrant/.ssh. Это было "root: root", но должно быть "vagrant: vagrant"
Майкл
4

Если вы используете настройку SSH по умолчанию в VagrantFile и начали видеть ошибки аутентификации SSH после повторного связывания вашего блока VM из-за сбоя, попробуйте заменить открытый ключ на вашем бродячем компьютере.

Vagrant заменяет открытый ключ, связанный с небезопасной парой закрытых ключей, при каждом выходе из системы по соображениям безопасности. Если вы не завершили работу своего компьютера должным образом, пара открытых / закрытых ключей может не синхронизироваться, что приведет к ошибке аутентификации SSH.

Чтобы решить эту проблему, просто загрузите текущий незащищенный закрытый ключ и затем скопируйте пару открытого ключа в файл author_keys вашей виртуальной машины.

THK
источник
3

Это может быть последний ответ в списке, но это сработало для меня, и я нигде не нашел этот ответ, я нашел его сам после 2 дней исследований, так что вам лучше попробовать это, если до сих пор у вас ничего не получалось.

В моем случае проблема возникла из моего VirtualBox. Я не знаю, по какой причине опция была отключена, и она должна была быть включена.

введите описание изображения здесь

Как вы можете видеть на изображении, с моим VirtualBox были некоторые проблемы с сетью, и для решения этой проблемы мне нужно было выбрать свой компьютер, нажать «Настройки», вкладку «Сеть» и после этого убедиться, что опция «Подключен кабель» был выбран. В моем случае эта опция не была выбрана, и мне это не удалось на этом этапе:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

Сначала я подумал, что порт уже используется, после чего я переустанавливал Vagrant и тоже пробовал другие вещи, но ни одна из них не работала для меня.

paulalexandru
источник
3

Это случалось со мной несколько раз, и я решил это так:

  1. Проверьте и убедитесь, что ваш Vagrantfile имеет правильный путь к закрытому ключу:

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. Выполнить> команду vagrant ssh в терминале Linux

  3. На своем бродячем аппарате иди в

    cd /home/vagrant/.ssh

и проверьте, совпадает ли ключ ssh в файле author_keys с ключом, установленным на вашем локальном компьютере в ~ / .ssh / id_rsa.pub. Если нет, замените тот из ваших бродячих авторизованных ключей на тот, который находится на вашем локальном компьютере в ~ / .ssh / id_rsa.pub.

  1. Перезагрузить бродягу:

    Бродячая перезагрузка

Надеюсь, это поможет кому-то еще. Ура!

Разван
источник
У меня нет папки ~ / .ssh, что мне делать ??
Ашиш Карпе
@AshishKarpe создайте его с разрешением 700 и создайте authorized_keysфайл с разрешением 600 внутри.
Хоган
3

1. Найдите закрытый ключ на хосте:

vagrant ssh-config
#

Вывод:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. Сохраните путь к закрытому ключу и номер порта в переменных:

Используйте эти две команды с выводом сверху:

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. Сгенерируйте открытый ключ и загрузите его на гостевой компьютер:

Копирование / паста, без изменений:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#
Набиль Кадими
источник
1
У меня была описанная проблема очень много раз, обычно после упаковки, а затем восстановления коробки Vagrant. Что мне сработало, так это добавление следующей конфигурации, чтобы дать команду Vagrant вставить свой открытый ключ в виртуальную машину: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueНо на этот раз вышеуказанная конфигурация ничего не сделала. Я действительно не знаю почему, попытался отладить, почему ключ не вставлен без удачи. Поэтому я отступил к вашему решению и вуаля! Оно работает!
stz184
2

Решение для Mac:

  1. Добавлен локальный ключ ssh id_rsa в бродячий закрытый ключ

    vi /Users//.vagrant/machines/default/virtualbox/private_key

    /Users//.ssh/id_rsa

  2. скопировал открытый ключ /Users//.ssh/id_rsa.pub на бродячую коробку authorized_keys

ssh vagrant@localhost -p 2222 (пароль: бродячий) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Проблема решена.

Благодаря

Параг Лохия
источник
1

также не мог выйти за рамки:

по умолчанию: SSH метод аутентификации: закрытый ключ

Когда я использовал графический интерфейс VirtualBox, он сказал мне, что есть несоответствие процессора ОС.

Для дальнейшего продвижения бродяги, в настройках BIOS мне пришлось нелогично:

Отключить: виртуализация

Включить: VT-X

Попробуйте включить эти настройки в вашем BIOS.

Onshop
источник
1

Прежде всего вы должны удалить автоматически сгенерированный файл insecure_private_key, а затем восстановить этот файл, набрав

vagrant ssh-config

затем

vagrant halt
vagrant up

Он должен работать

Ахмет Каракая
источник
Я пробовал это, но все еще получаю ошибку, потому что я использую Ubuntu Virtual Box VM внутри, что я пытаюсь бродить?
Ашиш Карпе
#vagrant up Приведение машины 'default' к провайдеру 'virtualbox' ... ==> default: Очистка всех ранее установленных перенаправленных портов ... ==> default: Очистка любых ранее установленных сетевых интерфейсов ... ==> default: Подготовка сетевых интерфейсов на основе конфигурации ... по умолчанию: адаптер 1: nat ==> по умолчанию: переадресация портов ... по умолчанию: 22 (гостевой) => 2222 (хост) (адаптер 1) ==> по умолчанию: загрузка виртуальной машины .. . ==> default: Ожидание загрузки машины. Это может занять несколько минут ... по умолчанию: SSH-адрес: 127.0.0.1:2222 по умолчанию: SSH username: vagrant default: метод аутентификации SSH: закрытый ключ
Ашиш Карпе
1

Я решил проблему следующим образом. 1. Создайте новый ключ SSH, используя Git Bash

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. Когда вам будет предложено «Введите файл, в котором вы хотите сохранить ключ», нажмите Enter. Это принимает местоположение файла по умолчанию.

    Введите файл для сохранения ключа (/Users/[you]/.ssh/id_rsa): [Нажмите enter]

  2. В командной строке введите безопасную фразу-пароль. Вы можете оставить пустым и нажать Enter, если вам не нужна фраза-пароль.

    Введите файл для сохранения ключа (/Users/[you]/.ssh/id_rsa): [Нажмите enter]

  3. Для подключения к Vagrant VM введите следующую команду

    ssh vagrant @ localhost -p 2222

Когда вы получите следующее сообщение, введите «да» и нажмите ввод.

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. Теперь, чтобы установить тип соединения SSH: $ vagrant ssh

  2. Скопируйте открытый ключ хоста в файл author_keys в Vagrant VM. Для этого перейдите в папку «Users / [you] /. Ssh» и скопируйте содержимое файла id_rsa.pub на хост-компьютере и вставьте его в файл «~ / .ssh / authorized_keys» в Vagrant VM.

  3. Изменить разрешение для папки SSH и файла author_keys в Vagrant VM
  4. Перезапустите vagrant с помощью: $ vagrant reload
Кришна
источник
0

Я запустил машину, затем:

vagrant ssh-config

Я получил следующее:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

Тогда я побежал

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

Машина загружается с этого момента

  • El Capitan 10.11.1 Beta (15B38b)
  • Виртуальная коробка 5.0.8 r103449
  • Бродяга 1.7.4
Радек
источник
0

Между всеми ответами здесь есть много хороших вещей, чтобы попробовать. Для полноты, если вы

ssh vagrant@localhost -p 2222

как предлагает @Bizmate, и это не удается, убедитесь, что у вас есть

AllowUsers vagrant

в /etc/ssh/sshd_configвашей гостевой / бродячей машине.

Дон смит
источник
0

Я использую Vagrant с установкой Puphpet с мая 2015 года, и у меня возникла эта проблема. Похоже, что сгенерированная конфигурация не обрабатывает поведение Vagrant 1.7.4 (или, может быть, немного раньше?) По регенерации ключей ssh, если он обнаруживает небезопасный ключ.

Я решил эту проблему, добавив следующее в мой сгенерированный Puphpet Vagrantfile (локальная настройка) внутри предложения «if File.file? (CustomKey)»:

config.ssh.insert_key = false

Ссылочный коммит

Элиас Кускумвекакис
источник
0

Это все правильные шаги, которые я выполнил для устранения этой проблемы, возникшей при запуске команды vagrant up.

Вот шаги, которые я следовал

  1. создать папку. например, F: \ projects
  2. Откройте эту папку в git bash и выполните команду ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (укажите действительный адрес электронной почты)
  3. Затем генерируем пару ключей в двух отдельных файлах в папке проекта. например, проект (файл личного ключа), project.pub (файл открытого ключа)
  4. Перейдите по этому адресу C: \ Users \ acer.vagrant.d и найдите файл insecure_private_key
  5. Получите резервную копию файла, скопируйте содержимое вновь созданного закрытого ключа и вставьте его в файл insecure_private_key. Затем скопируйте insecure_private_key и вставьте его в это место.
  6. Теперь бродите в своем проекте. после генерации проблемы наберите vagrant ssh и зайдите внутрь, указав имя пользователя и пароль. (по умолчанию имя пользователя и пароль установлены как vagrant)
  7. Зайдите в этот каталог cd /home/vagrant/.ssh и наберите mv authorized_keys авторизованный_keys_bk
  8. Затем введите ls -al и введите vi author_keys, чтобы открыть редактор файла author_keys vi.
  9. Откройте сгенерированный открытый ключ из notepad ++ (project.pub) и скопируйте содержимое. Затем нажмите i на git bash, чтобы включить режим вставки в редакторе vi, щелкните правой кнопкой мыши и вставьте. После выхода нажмите для выхода из режима вставки
  10. : WQ! для сохранения файла и введите ls -al
  11. Тогда права доступа устанавливаются так, как показано ниже, нет необходимости изменять drwx ------. 2 Бродяга Бродяга 4096 13 февраля 15:33. drwx ------. 4 бродяги бродяги 4096 13 февраля 14:04 .. -rw -------. 1 бродяга бродяга 743 13 февр. 14:26 author_keys -rw -------. 1 root root 409 фев 13 13:57 авторизованный_кей_бк -rw -------. 1 vagrant vagrant 409 янв. 2 23:09 authorized_keys_originial В противном случае введите chmod 600 authorized_keys и тоже введите эту команду chown vagrant: vagrant authorized_keys
  12. Наконец запустите бродячую остановку и снова бродите.

************************ ЭТО РАБОТАЕТ ШТРАФ ДЛЯ МЕНЯ ***********

Вайодья Тамари
источник
0

Просто для тех людей, которые были такими же идиотами, как я, или с кем-то странным случалось с их бродячей машиной. Эта ошибка также может возникнуть при изменении разрешений домашнего каталога пользователя-бродяги (намеренно или случайно).

Вместо этого вы можете войти (как описано в других публикациях), используя пароль («vagrant»), а затем выполнить следующую команду, чтобы исправить разрешения.

sudo chown -R vagrant:vagrant /home/vagrant

Тогда вы сможете снова войти в систему без ввода пароля.

TL; DR: права доступа к вашей бродячей домашней папке неверны.

Aeolun
источник
0

Просто:

homestead destroy
homestead up

Изменить (не так просто, как кажется):

Проблема заключалась в том, что новые версии использования усадьбы php7.0и некоторые другие вещи. Чтобы избежать этого испортите убедитесь , что вы установите verisonв Homestead.yml:

version: "0"
Стивен
источник
0

Я решил эту проблему, выполнив команды на Windows 7 CMD, как указано в этой ссылке здесь последний пост в этой теме,

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f
Шехзад Низамани
источник
0

Последние несколько дней я бился головой об этом на переупакованной базовой коробке. (Mac OS X, El Capitan)

Следуя процедуре @Radek, я сделал vagrant ssh-config на коробке с исходным кодом и получил:

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

На новом экземпляре эта команда дала мне:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

Итак, я просто добавил эту строку в новой копии:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

Не идеально, но я могу жить дальше.

rickb
источник
0

Еще одно простое решение - в Windows перейдите в файл Homestead / Vagrantfile и добавьте эти строки для соединения с именем пользователя / паролем вместо закрытого ключа:

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Итак, наконец часть файла будет выглядеть так:

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

Надеюсь, что это поможет ..

Махмуд Мостафа
источник
0

Я попробовал это на моей машине VM

поменял права / home / vagrant (сделал на нем chmod 700)

Теперь я могу SSH прямо в мои коробки

ajay_fuel_stock_lamp_stack
источник