Бродяга СШ сбой проверки подлинности


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

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
  1. config.ssh.private_key_path это ваш локальный закрытый ключ
  2. ваш закрытый ключ должен быть доступен к локальному ssh-агенту. Вы можете проверить с ssh-add -L. Если его нет в списке, добавьте его с ssh-add ~/.ssh/id_rsa
  3. не забудьте добавить свой открытый ключ в ~/.ssh/authorized_keys на бродячей ВМ. Вы можете сделать это путем копирования и вставки или с помощью инструмента типа ssh-copy-id (пользователь: root пароль: vagrant порт: 2222) ssh-copy-id '-p 2222 root@127.0.0.1'

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

  1. удалить от c:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. выполнить 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 вручную на клиенте, а затем с помощью закрытого ключа на хосте.

  1. войдите в vagrant machine:vagrant ssh используйте пароль по умолчанию vagrant.
  2. создать ssh ключи: например,ssh-keygen -t rsa -b 4096 -C "vagrant" (как советуют соответствующие GitHub руководство).
  3. переименовать файл открытого ключа (по умолчанию id_rsa.паб), перекрывая старый:mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. перезагрузите ssh сервис в случае необходимости:sudo service ssh reload.
  5. скопируйте файл закрытого ключа (по умолчанию id_rsa) на хост-машину: например, используйте прекрасное сочетание cat и буфера обмена, cat .ssh/id_rsa, рисовать и копировать (лучшие способы должны существовать, пойти изобрести один!).
  6. выход из машины бродяги:logout.
  7. найти текущий частный ключ, используемый vagrant, глядя на его конфигурацию:vagrant ssh-config (смотри, например ÌdentityFile "/[...]/закрытый ключ."
  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, сколько вам нужно, каждый даст вам больше информации.

Это также может произойти, если вы пытаетесь заставить свою виртуальную машину использовать пользователя 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

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

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

  2. Я скопировал в тот же каталог, где находится файл 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. Я не знаю, по какой причине опция была отключена, и она должна была быть включена.

enter image description here

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

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

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

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

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

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

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

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

    cd / home / vagrant/.ssh

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

  1. Перезагрузить 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:

  1. добавлен локальный ssh id_rsa ключ к vagrant private key

    vi / пользователи//.бродяга / машины / по умолчанию / virtualbox / private_key

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

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

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

  1. chmod 0600 ~/.ssh/authorized_keys

  2. 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.
  1. когда вам будет предложено "ввести файл, в котором нужно сохранить ключ", нажмите Enter. Это принимает расположение файла по умолчанию.

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

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

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

  3. для подключения к вашей 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)?
  1. теперь, чтобы установить тип подключения SSH: $ vagrant ssh

  2. скопируйте открытый ключ хоста в файл authorized_keys в Vagrant VM. Для этого перейдите в раздел "Пользователи/[вы]/.ssh " папка и скопируйте содержимое в id_rsa.файл pub в главной машине и мимо в "~/.ssh / authorized_keys" файл в Vagrant VM.

  3. изменить разрешение на папку SSH и файл authorized_keys в Vagrant VM
  4. перезапустить 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

ссылка commit

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

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

  1. создать папку. е.г F:\projects
  2. откройте эту папку в git bash и выполните эту команду ssh-keygen-t rsa-b 4096-C "your_email@example.com" (укажите действительный адрес электронной почты)
  3. затем создание пары ключей в двух отдельных файлах в папке проекта. например, проект (закрытый ключ файл), проект.паб (файл с открытым ключом)
  4. перейти в это место C:\Users\acer.бродяга.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 для open authorized_keys file vi editor.
  9. открыть сгенерированный открытый ключ из notepad++ (project.паб) и копировать контент Затем нажмите i на git bash, чтобы включить режим вставки в Редакторе vi, и щелкните правой кнопкой мыши и вставьте. После того, как нажмите escape, чтобы выйти из режима вставки
  10. : wq! для сохранения файл и тип ls-al
  11. затем разрешения устанавливаются, как показано ниже нет необходимости менять 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
  12. наконец запустите 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

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