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

Проблема с аутентификацией 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

Я также пробовал использовать частную (только для хоста) сеть вместо общедоступной (мостовой) сети, используя эту строку в 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, но все еще не аутентифицируется.

А еще я попробовал перестроить коробку и перепроверить все вышеперечисленное.

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

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


person ic3b3rg    schedule 07.04.2014    source источник


Ответы (30)


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

Удачи.

person user3509054    schedule 08.04.2014

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

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

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

Сначала попробуйте: узнать, что 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 [email protected]'

Если по-прежнему не работает, попробуйте следующее:

  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

person shilovk    schedule 09.05.2014
comment
в моем случае это была проблема, потому что config.ssh.private_key_path = "~/.ssh/id_rsa" пришлось удалить эту строку, чтобы обеспечить работу - person holms; 16.08.2014
comment
Все это сработало, но мне также пришлось удалить свою запись в известных хостах. У меня возникли проблемы при перемещении местоположения и входе в систему. - person Pumphouse; 13.09.2015
comment
@shilovk +1 Спасибо, спасибо, большое спасибо. Второй сделал свое дело. Еще раз большое спасибо, чувак. - person whitesiroi; 22.02.2016
comment
Это указывало мне в правильном направлении, в моем случае все, что мне нужно было сделать, это удалить файл .vagrant / machines / default / virtualbox / private_key, и после запуска vagrant up он заменил файл правильным - я бы сделал резервную копию файл на всякий случай - person andrux; 26.02.2016
comment
Первый и самый важный шаг - проверить настройки BIOS и убедиться, что виртуализация включена. - person Bahman.A; 09.10.2018
comment
Измените содержимое файла insecure_private_key на содержимое закрытого ключа вашей личной системы, для меня этого было достаточно. Большое спасибо! - person Adrian Kalinowski; 10.07.2021

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

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

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

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

person Bizmate    schedule 11.06.2015
comment
запустите vagrant reload после обновления файла authorized_keys. Vagrant автоматически обнаружит незащищенный ключ и повторно сгенерирует его для вас. Должен работать потом. - person ProfileTwist; 30.10.2016

Если вы столкнулись с этой проблемой в 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 работает нормально.

person Lei Xu    schedule 04.08.2016
comment
Допустим, у меня есть 5 машин на один бродячий файл. Каждый раз, когда я перезапускаюсь, мне нужно делать это для каждой машины. Я там исправляю это навсегда для данной настройки бродяги с использованием centos? - person Pol; 17.10.2016
comment
Просто нужно было обновить бродягу до версии 1.8.6, чтобы иметь 1.8.5, где существовала ошибка - person Pol; 17.10.2016

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

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 в вашей домашней папке.)

person Raja Ehtesham    schedule 19.08.2015

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

  1. Войдите на бродячую машину: 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. При необходимости перезагрузите службу ssh: sudo service ssh reload.
  5. Скопируйте файл закрытого ключа (по умолчанию id_rsa) на хост-машину: например, используйте прекрасную комбинацию cat и clipboard, cat .ssh/id_rsa, paint и copy (должны существовать лучшие способы, иди изобретайте!).
  6. Выйти из бродячей машины: logout.
  7. Найдите текущий закрытый ключ, используемый бродягой, посмотрев на его конфигурацию: 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, сколько вам нужно, каждый даст вам больше информации.

person sankari    schedule 28.06.2016
comment
Этот ответ мне помог. Просто чтобы поделиться своим опытом: каким-то образом (возможно, во время установки Capistrano, но это не подтверждено) мой файл authorized_key был удален на моей гостевой виртуальной машине. Воссоздание его с помощью этих шагов сработало, и теперь я могу использовать ssh без запроса пароля. Спасибо. - person Martin Joiner; 13.07.2016
comment
После удаления обоих ключей (общедоступный / частный) с хост-машины я смог повторить и решить с помощью этого процесса - person vrwired; 26.07.2016
comment
Использование Git ускоряет передачу содержимого этого файла. - person lloan; 17.08.2018
comment
этот сработал для меня после всего, что я пробовал, не удалось ... большое спасибо! - person nikolas; 04.10.2018
comment
Это сработало для меня. Единственное, что я сделал иначе, - это использовал ssh [email protected] -p 22 (password: vagrant) для входа в виртуальную машину, поскольку vagrant ssh у меня не работал. 10.0.0.0 - это частный IP-адрес, который я установил в моем vagrantfile. - person turrican_34; 03.03.2019
comment
Я использовал встроенный веб-сервер PHP для передачи ключа из Virtualbox. - person Dpetrov; 04.11.2019

Невозможно запустить бродягу, потому что он зависает и время ожидания истекает? Недавно у меня случился инцидент с водой в ноутбуке, и мне пришлось перейти на новый (кстати, на 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 <path-to-insecure_private_key>

Результат будет примерно таким:

ssh-rsa AAAAB3Nyc2EAAA...9gE98OHlnVYCzRdK8jlqm8hQ==

3 - Войдите в гостевую систему Vagrant с паролем vagrant:

ssh -p 2222 -o UserKnownHostsFile=/dev/null [email protected]
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.
[email protected]'s password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

ПРИМЕЧАНИЕ: если бродячий гость настроен на запрет аутентификации по паролю, вам нужно открыть графический интерфейс VBox, дважды щелкнуть имя гостя, войти в систему как vagrant/vagrant, затем sudo -s и отредактировать /etc/ssh/sshd_config и найти строку PasswordAuthentication no (обычно в конце файла), замените no на yes и перезапустите sshd (т.е. systemctl reload sshd или /etc/init.d/sshd restart).

4 - Добавьте открытый ключ в файл /home/vagrant/authorized_keys.

$ echo "ssh-rsa AA2EAAA...9gEdK8jlqm8hQ== vagrant" > /home/vagrant/.ssh/authorized_keys

5 - Выйдите (CTRL + d) и остановите гостя Vagrant, а затем верните его обратно.

ВАЖНО, если вы используете какие-либо инструменты подготовки (например, Ansible и т. д.), отключите его перед перезапуском гостя, поскольку Vagrant будет думать, что ваш гость не инициализирован из-за использования небезопасного закрытого ключа. Он переустановит ключ, а затем запустит ваш провайдер!

$ vagrant halt
$ vagrant up

Надеюсь, теперь вы поднимете руки вверх ...

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

person Anas    schedule 05.04.2019
comment
Вы, сэр, гений, или Нед Бэтчелдерс. В любом случае, это устранило мою проблему! - person Adsy2010; 29.04.2019
comment
Я думал, что это тоже исправило это для меня, однако vagrant destroy, за которым следует vagrant up, не смог сохранить эти изменения. MacOS Catalina / Big Sur вызвала у меня массу проблем, но в конечном итоге удаление VirtualBox / Vagrant, удаление оставшихся папок и еще одна чистая установка снова заставили меня работать. Для Catalina и выше мне пришлось делать обновления Kernel Extension (Kext) из этой вики Vagrant: google.com/url? > - person AZRckCrwler; 19.06.2021

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

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

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

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

person Brad Parks    schedule 03.02.2015
comment
для меня только настройка config.ssh.username = vagrant и config.ssh.password = vagrant сделала трюк - person psychok7; 31.10.2015

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

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

person GP89    schedule 23.01.2015
comment
Я бы добавил, что, как любой хороший разработчик, мы проверяем .vagrant файлы в git ... и поэтому быстрое git checkout указанного файла спасает положение! - person Ian Vaughan; 06.11.2015

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

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

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

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

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

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

     config.ssh.private_key_path = "./id_rsa"
    

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

person Michael    schedule 06.11.2015

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

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

so:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

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

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

person robert    schedule 26.01.2015
comment
Иногда я не могу изменить, просто запускаю sudo chmod 600 authorized_keys, но он все равно остается без изменений. Я думаю, что это имеет какое-то отношение к тому, что он также используется в Windows. - person Dariux; 28.05.2015
comment
Иногда это происходит, если каталог находится в общем ресурсе, например /vagrant/... - person robert; 28.05.2015
comment
В дополнение к своему ответу я хочу проголосовать за этот ответ. На другой моей машине была именно такая проблема - неправильный владелец каталога /home/vagrant/.ssh. Это был root: root, но должен быть vagrant: vagrant - person Michael; 15.04.2016

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

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

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

person thk    schedule 29.06.2015

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

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

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

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

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

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

person paulalexandru    schedule 06.10.2016

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

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

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

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

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

    cd /home/vagrant/.ssh

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

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

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

Надеюсь, это поможет кому-то другому. Ваше здоровье!

person Razvan    schedule 14.04.2016
comment
У меня нет папки ~ / .ssh, что мне делать? - person Ashish Karpe; 06.09.2016
comment
@AshishKarpe создайте его с разрешением 700 и создайте файл authorized_keys с разрешением 600 внутри. - person hogan; 29.11.2016

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
#
person Nabil Kadimi    schedule 17.11.2017
comment
У меня была описанная проблема много раз, обычно после упаковки, а затем восстановления коробки Vagrant. Что сработало для меня, так это добавление следующей конфигурации, чтобы инструктировать Vagrant вставить свой открытый ключ в виртуальную машину: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = true Но на этот раз вышеуказанная конфигурация ничего не сделала. Я действительно не знаю почему, без везения пытался отладить, почему ключ не вставляется. Итак, я вернулся к вашему решению и вуаля! Оно работает! - person stz184; 07.09.2018

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

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

    vi / Пользователи//.vagrant/machines/default/virtualbox/private_key

    /Пользователи//.ssh/id_rsa

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

ssh vagrant@localhost -p 2222 (пароль: vagrant) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

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

Благодаря

person Parag Lohiya    schedule 15.08.2016

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

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

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

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

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

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

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

person Onshop    schedule 11.03.2016

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

vagrant ssh-config

тогда

vagrant halt
vagrant up

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

person Ahmet Karakaya    schedule 26.02.2016
comment
Я пробовал это, но все еще получаю ошибку, потому что я использую виртуальную машину Ubuntu Virtual Box, внутри которой я пытаюсь бродить? - person Ashish Karpe; 06.09.2016
comment
#vagrant up Запуск машины "по умолчанию" с поставщиком "виртуального бокса" ... == ›default: очистка всех ранее установленных перенаправленных портов ... ==› default: очистка всех ранее установленных сетевых интерфейсов ... == ›default: Подготовка сетевых интерфейсов на основе конфигурации ... по умолчанию: Адаптер 1: nat == ›по умолчанию: Порты переадресации ... по умолчанию: 22 (гость) =› 2222 (хост) (адаптер 1) == ›по умолчанию: Загрузка ВМ .. . == ›по умолчанию: ожидание загрузки машины. Это может занять несколько минут ... по умолчанию: адрес SSH: 127.0.0.1:2222 по умолчанию: имя пользователя SSH: бродяга по умолчанию: метод аутентификации SSH: закрытый ключ - person Ashish Karpe; 06.09.2016

Я решил проблему следующим образом. 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/[youpting/.ssh/id_rsa): [Press enter]

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

    Введите файл, в котором нужно сохранить ключ (/Users/[youpting/.ssh/id_rsa): [Press enter]

  3. Чтобы подключиться к вашей Vagrant VM, введите следующую команду

    SSH бродяга @ localhost -p 2222

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

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. Скопируйте открытый ключ хоста в файл authorized_keys на Vagrant VM. Для этого перейдите в папку «Users / [you] /. Ssh» и скопируйте содержимое файла id_rsa.pub на хост-машине, а затем в файл «~ / .ssh / authorized_keys» в Vagrant VM.

  3. Изменить разрешение на папку SSH и файл authorized_keys в Vagrant VM
  4. Перезапустите бродягу с помощью: $ vagrant reload
person Krishna    schedule 10.09.2016

Еще одно простое решение, в 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

Надеюсь на эту помощь ..

person Mahmoud Mostafa    schedule 17.08.2017

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

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 Бета (15B38b)
  • Виртуальная коробка 5.0.8 r103449
  • Бродяга 1.7.4
person Radek    schedule 24.10.2015

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

ssh vagrant@localhost -p 2222

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

AllowUsers vagrant

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

person Don Smith    schedule 03.11.2015

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

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

config.ssh.insert_key = false

Ссылка на фиксацию

person Elias Kouskoumvekakis    schedule 15.01.2016

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

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

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

*********************** ЭТО РАБОТАЕТ ОТЛИЧНО ДЛЯ МЕНЯ ******************** ***********

person Vayodya Tamari    schedule 14.02.2016

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

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

sudo chown -R vagrant:vagrant /home/vagrant

После этого вы сможете снова войти в систему, не вводя пароль.

TL; DR: неправильные разрешения для вашей бродячей домашней папки.

person Aeolun    schedule 31.05.2016

Простой:

homestead destroy
homestead up

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

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

version: "0"
person stephen    schedule 23.07.2016

Я решил эту проблему, выполнив команды на 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
person Shehzad Nizamani    schedule 10.08.2016

Бьюсь головой об этом последние пару дней на переупакованной базовой коробке. (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"
...

Не идеально, но я могу жить своей жизнью.

person rickb    schedule 25.06.2017

Если вы используете windows и эта проблема возникла неожиданно, попробуйте следующий код в конфигурации.

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

Это в основном использует конфигурацию бродяги по умолчанию.

person Mohit Verma    schedule 01.06.2021

Не уверен, что ваш случай такой же, как мой. В моем случае vagrant ssh не удалось аутентифицировать ключ и запросил пароль. Я нашел свою старую настройку ниже в моем ~/.ssh/config (вверху файла).

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

После удаления этого ключа аутентификация начала работать. Пароль больше не запрашивается.

person Takamitsu Mizutori    schedule 23.06.2021