Бродяга СШ сбой проверки подлинности
проблема с аутентификацией 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
.создал с
0700
разрешения.создал С
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
но все еще не аутентифицируется.
и я также попытался восстановить коробку и перепроверить все вышесказанное.
похоже другие имели успех с этой конфигурацией, значит, я что-то делаю не так.
я нашел эту ветку и включил графический интерфейс, но это не помогает.
27 ответов:
убедитесь, что ваш первый сетевой интерфейс NAT. Другой второй сетевой интерфейс может быть все, что вы хотите, когда вы строите окно. Не забывайте о бродячем пользователе, как описано в теме Google.
удачи.
общие сведения: по умолчанию для 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
config.ssh.private_key_path
это ваш локальный закрытый ключ- ваш закрытый ключ должен быть доступен к локальному ssh-агенту. Вы можете проверить с
ssh-add -L
. Если его нет в списке, добавьте его сssh-add ~/.ssh/id_rsa
- не забудьте добавить свой открытый ключ в
~/.ssh/authorized_keys
на бродячей ВМ. Вы можете сделать это путем копирования и вставки или с помощью инструмента типа ssh-copy-id (пользователь:root
пароль:vagrant
порт: 2222)ssh-copy-id '-p 2222 root@127.0.0.1'
если все еще не работает попробуйте это:
удалить от
c:\Users\USERNAME\.vagrant.d\insecure_private_key
выполнить
vagrant up
(бродяга будет генерировать новыйinsecure_private_key
file)в других случаях полезно просто установить forward_agent на
Vagrantfile
:Vagrant::Config.run do |config| config.ssh.forward_agent = true end
полезное:
конфигурирования git может быть сgit-scm.com
после настройки этой программы и создания персональной системы private ключ будет в вашем профиле путь:
c:\users\USERNAME\.ssh\id_rsa.pub
PS: наконец-предлагаю вам посмотреть на Ubuntu на Windows 10
ни один из выше работал для меня. Каким-то образом в поле был добавлен неправильный открытый ключ в бродячем пользователе 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
когда готово выйдите из виртуальной машины и повторите попытку vagrant ssh. Это должно сработать сейчас.
Если вы столкнулись с этой проблемой на vagrant 1.8.5, то проверьте эту тему на github:
https://github.com/mitchellh/vagrant/issues/7610
это вызвано в основном проблемой разрешения, обходной путь просто
vagrant ssh password: vagrant chmod 0600 ~/.ssh/authorized_keys exit
затем
vagrant reload
FYI: эта проблема затрагивает только CentOS, Ubuntu работает нормально.
выполните следующие команды в гостевой машине / виртуальной машине:
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 / authorized_keys в вашей домашней папке.)
по моему опыту, это была удивительно частая проблема с новыми бродячими машинами. Безусловно, самый простой способ решить эту проблему, вместо того, чтобы изменять саму конфигурацию, заключается в создании необходимых ключей ssh вручную на клиенте, а затем с помощью закрытого ключа на хосте.
- войдите в vagrant machine:
vagrant ssh
используйте пароль по умолчаниюvagrant
.- создать ssh ключи: например,
ssh-keygen -t rsa -b 4096 -C "vagrant"
(как советуют соответствующие GitHub руководство).- переименовать файл открытого ключа (по умолчанию id_rsa.паб), перекрывая старый:
mv .ssh/id_rsa.pub .ssh/authorized_keys
.- перезагрузите ssh сервис в случае необходимости:
sudo service ssh reload
.- скопируйте файл закрытого ключа (по умолчанию id_rsa) на хост-машину: например, используйте прекрасное сочетание cat и буфера обмена,
cat .ssh/id_rsa
, рисовать и копировать (лучшие способы должны существовать, пойти изобрести один!).- выход из машины бродяги:
logout
.- найти текущий частный ключ, используемый vagrant, глядя на его конфигурацию:
vagrant ssh-config
(смотри, например ÌdentityFile "/[...]/закрытый ключ."- замените текущий закрытый ключ на тот, который вы создали на главной машине: например,
nano /[...]/private_key
и вставить из буфера обмена, если все остальное терпит неудачу. (Примечание, однако, что если ваш private_key не является конкретным проектом, но совместно используется несколькими бродячими машинами, вам лучше настроить путь самостоятельно, чтобы не нарушать другие отлично работающие станки! Изменение пути так же просто, как добавление строкиconfig.ssh.private_key_path = "path/to/private_key"
в Vagrantfile.) Кроме того, если вы используете этого PuPHPet сгенерированная машина, вы можете сохранить свой закрытый ключ в файлpuphpet/files/dot/ssh/id_rsa
и он будет добавлен в конфигурацию ssh Vagrantfile автоматически.- проверьте настройки:
vagrant ssh
теперь должно работать.если это так, поздравьте себя,
logout
, используяvagrant provision
если нужно и продолжайте с осмысленным задача под рукой.если вы все еще сталкиваетесь с проблемами, может пригодиться добавить подробный флаг в команду ssh, чтобы облегчить отладку. Вы можете пройти этот (или любой другой вариант, если на то пошло) после двойного тире. Например, набрав
vagrant ssh -- -v
. Не стесняйтесь добавлять столько v, сколько вам нужно, каждый даст вам больше информации.
Это также может произойти, если вы пытаетесь заставить свою виртуальную машину использовать пользователя root по умолчанию для SSH....
например, такая конфигурация в вашем Vagrantfile может вызвать этот сбой:
config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'
решение: закомментируйте эти строки и повторите попытку!
проблема я получал ошибки аутентификации ssh, на коробке, которую я подготовил. Оригинал работал нормально.
проблема для меня заключалась в том, что мне не хватало закрытого ключа в
.vagrant/machines/default/virtualbox/private_key
. Я скопировал закрытый ключ из того же относительного местоположения из оригинальной коробки и Альта!
Я нашел способ обойти беспорядок с ключами на Win 8.2, где я не преуспел ни с одним из методов, упомянутых здесь. Может быть интересно, что точно такая же комбинация VirtualBox, Vagrant и box работает на Win 7 Ultimate без каких-либо проблем.
я переключился на аутентификацию паролем, добавив следующие команды в Vagrantfile:
config.ssh.password = "vagrant" config.ssh.insert_key = false
обратите внимание, что я не уверен, что это единственные изменения, необходимые, потому что я уже сделал:
Я создал новую пару ключей RSA и соответственно изменил файл authorized_keys (все в виртуальной машине, см. предложения выше и в другом месте)
Я скопировал в тот же каталог, где находится файл Vagrantfile и добавил
config.ssh.private_key_path = "./id_rsa"
но я считаю, что эти изменения были несущественными. Я потратил много времени на попытки, поэтому я не изменил рабочую конфигурацию по очевидным причинам :)
для меня это было решено путем изменения разрешений .ssh папка в vagrant home directort (т. е. " ~vagrant/.ssh"). Я думаю, что я испортил разрешения, когда я настраивал ключи ssh для своего приложения.
Кажется, что файл 'authorized_keys' должен быть ' rw 'только для' бродячего 'пользователя, поэтому " chmod 600 authorized_keys"; то же самое касается самого каталога и его родителя:
так:
chmod 600 authorized_keys chmod 700 . chmod 700 ..
Это было только после того, как я все эти разрешения восстановили, что бродячий ssh снова начал работать.
Я думаю, что это как-то связано с безопасностью СШ. Он отказывается признавать сертификаты, если они каким-либо образом доступны за пределами текущего пользователя, поэтому попытки бродяг войти в систему отклоняются.
Если вы используете настройку SSH по умолчанию в своем VagrantFile и начали видеть ошибки аутентификации SSH после повторного связывания вашего окна VM из-за сбоя, попробуйте заменить открытый ключ на своей машине vagrant.
Vagrant заменяет открытый ключ, связанный с небезопасной парой закрытых ключей при каждом выходе из системы по соображениям безопасности. Если вы неправильно выключили компьютер, пара открытого и закрытого ключей может выйти из синхронизации, что приведет к ошибке аутентификации SSH.
чтобы решить эту проблему проблема, просто загрузите текущий небезопасный закрытый ключ, а затем скопируйте пару открытых ключей в файл authorized_keys вашей виртуальной машины.
Это может быть последний ответ в списке, но это сработало для меня, и я нигде не нашел этого ответа, я нашел его сам после 2 дней исследований, поэтому вам лучше попробовать это, если до сих пор ничего не работало для вас.
в моем случае проблема пришла из моего VirtualBox. Я не знаю, по какой причине опция была отключена, и она должна была быть включена.
Как вы можете видеть на изображении, там были некоторые сети проблемы с моим VirtualBox и что мне нужно было сделать, чтобы исправить эту проблему, чтобы выбрать мою машину, нажмите на вкладку Настройки, Сеть и после этого убедитесь, что опция кабель подключен был выбран. В моем случае этот параметр не был выбран, и я его не удалось на этом шаге:
default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key
сначала я думал, что порт уже используется, после этого я переустановил Vagrant, и я также пробовал другие вещи, но ни один из них не работал для меня.
Это случилось со мной несколько раз и я решил это :
проверьте и убедитесь, что ваш Vagrantfile имеет правильный путь к закрытому ключу:
config.тсс.private_key_path = " / home / razvan/.ssh / id_rsa"
выполнить команду vagrant ssh в терминале linux
на вашей бродячей машине перейти к
cd / home / vagrant/.ssh
и проверить, если ssh-ключ в файле authorized_keys такой же, как у вас на локальном компьютере в ~/.ssh / id_rsa.паб. Если не заменить один из ваших залетный authorized_keys с одной на локальная машина нашел в ~/.ssh / id_rsa.паб.
Перезагрузить Vagrant:
vagrant reload
надеюсь, это поможет кому-то еще. Ура!
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 #
Решение Mac:
добавлен локальный ssh id_rsa ключ к vagrant private key
vi / пользователи//.бродяга / машины / по умолчанию / virtualbox / private_key
/пользователи//.ssh / id_rsa
скопированный открытый ключ / пользователи//.ssh / id_rsa.паб на бродячей коробке authorized_keys
ssh vagrant@localhost -p 2222
(пароль: бродяга)ls -la
cd .ssh
chmod 0600 ~/.ssh/authorized_keys
vagrant reload
проблема решена.
спасибо
также не мог выйти за пределы:
по умолчанию: SSH auth метод: закрытый ключ
когда я использовал графический интерфейс VirtualBox, он сказал мне, что есть несоответствие процессора ОС.
чтобы получить vagrant вверх прогрессирует дальше, в настройках BIOS мне пришлось контратаковать интуитивно:
Отключить: Виртуализация
включить: VT-X
попробуйте переключить эти настройки в BIOS.
прежде всего, вы должны удалить автоматически созданный файл insecure_private_key, а затем восстановить этот файл, введя
vagrant ssh-config
затем
vagrant halt vagrant up
Он должен работать
Я решил проблему следующим образом. 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.
когда вам будет предложено "ввести файл, в котором нужно сохранить ключ", нажмите Enter. Это принимает расположение файла по умолчанию.
введите файл, в котором будет сохранен ключ (/Users/[you]/.ssh / id_rsa): [нажмите enter]
в командной строке введите безопасный пароль. Вы можете оставить пустой и нажать enter, если вам не нужен парольная фраза.
введите файл, в котором будет сохранен ключ (/Users/[you]/.ssh / id_rsa): [нажмите enter]
для подключения к вашей Vagrant VM введите следующую команду
ssh vagrant@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)?
теперь, чтобы установить тип подключения SSH: $ vagrant ssh
скопируйте открытый ключ хоста в файл authorized_keys в Vagrant VM. Для этого перейдите в раздел "Пользователи/[вы]/.ssh " папка и скопируйте содержимое в id_rsa.файл pub в главной машине и мимо в "~/.ssh / authorized_keys" файл в Vagrant VM.
- изменить разрешение на папку SSH и файл authorized_keys в Vagrant VM
- перезапустить vagrant с помощью: $ vagrant reload
я запустил машину, затем:
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
между всеми ответами здесь, есть много хороших вещей, чтобы попробовать. Для полноты картины, если вы
ssh vagrant@localhost -p 2222
как предлагает @Bizmate, и это не удается, убедитесь, что у вас есть
AllowUsers vagrant
на
/etc/ssh/sshd_config
вашей гостевой / бродячей машины.
Я использую Vagrant с настройкой Puphpet с мая 2015 года и имел эту проблему. Похоже, что конфигурация, которая была сгенерирована, не обрабатывала Vagrant 1.7.4 (или, может быть, немного раньше?) поведение регенерации ключей ssh, если он обнаруживает небезопасный ключ.
Я решил это, добавив следующее в мой Puphpet сгенерированный Vagrantfile (локальная настройка) внутри файла "if.файл?(customKey)" статья:
config.ssh.insert_key = false
Это все правильные шаги,которые я следовал для исправления этой проблемы ниже произошло при запуске команды vagrant up.
Это шаги, которые я следовал
- создать папку. е.г F:\projects
- откройте эту папку в git bash и выполните эту команду ssh-keygen-t rsa-b 4096-C "your_email@example.com" (укажите действительный адрес электронной почты)
- затем создание пары ключей в двух отдельных файлах в папке проекта. например, проект (закрытый ключ файл), проект.паб (файл с открытым ключом)
- перейти в это место C:\Users\acer.бродяга.d и найти файл insecure_private_key
- сделать резервную копию файла и скопировать содержимое вновь созданного закрытого ключа и вставить его в файл insecure_private_key. Затем скопируйте insecure_private_key и вставьте его в это место тоже.
- теперь бродяга в вашем месте проекта. после генерации выше типа вопроса vagrant ssh и зайти внутрь давая имя пользователя, пароль. (по умолчанию имя пользователя и пароль устанавливается как бродячий)
- зайдите внутрь в это место cd/home/vagrant/.ssh и тип mv authorized_keys authorized_keys_bk
- затем введите ls-al и введите vi authorized_keys для open authorized_keys file vi editor.
- открыть сгенерированный открытый ключ из notepad++ (project.паб) и копировать контент Затем нажмите i на git bash, чтобы включить режим вставки в Редакторе vi, и щелкните правой кнопкой мыши и вставьте. После того, как нажмите escape, чтобы выйти из режима вставки
- : wq! для сохранения файл и тип ls-al
- затем разрешения устанавливаются, как показано ниже нет необходимости менять drwx------. 2 бродяга бродяга 4096 фев 13 15: 33 . drwx------. 4 бродяга бродяга 4096 фев 13 14: 04 .. - rw - - - - - - -. 1 бродяга бродяга 743 фев 13 14: 26 authorized_keys - rw - - - - - - -. 1 root root 409 Feb 13 13: 57 authorized_keys_bk - rw - - - - - - -. 1 бродяга бродяга 409 янв 2 23: 09 authorized_keys_originial В противном случае введите chmod 600 authorized_keys и введите эту команду тоже chown vagrant:vagrant authorized_keys
- наконец запустите Vagrant halt и vagrant снова.
************************ЭТО ПРЕКРАСНО РАБОТАЕТ ДЛЯ МЕНЯ*******************************
только для тех людей, которые были идиотами, как я, или что-то странное случилось с их бродячей машиной. Эта ошибка также может возникнуть при изменении разрешений домашнего каталога бродячего пользователя (намеренно или случайно).
вместо этого вы можете войти в систему (как описано в других сообщениях), используя пароль ('vagrant'), а затем выполнить следующую команду, чтобы исправить разрешения.
sudo chown -R vagrant:vagrant /home/vagrant
тогда вы сможете снова войти в систему без ввода пароля.
TL; DR: разрешения на вашу домашнюю папку vagrant неверны.
просто:
homestead destroy homestead up
редактировать (не так просто, как первая мысль):
проблема была в том, что новые версии homestead используют
php7.0
и некоторые другие вещи. Чтобы избежать этого беспорядка, убедитесь, что вы установилиverison
наHomestead.yml
:version: "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
бьюсь головой об это в течение последних нескольких дней на переупакованной базовой коробке. (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" ...
не идеально, но я могу продолжать свою жизнь.
еще одно простое решение, в 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
надеюсь, что это поможет ..