Falha na autenticação do Vagrant ssh


147

O problema com a autenticação 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...

Eu posso Ctrl+Csair do loop de autenticação e, em seguida, ssh com êxito manualmente.

Eu executei as seguintes etapas na caixa de convidados:

  • Ativado Remote Loginpara All Users.

  • Criou o ~/.sshdiretório com 0700permissões.

  • Criou o ~/.ssh/authorized_keysarquivo com 0600permissões.

  • Colou essa chave pública em~/.ssh/authorized_keys

Também tentei usar uma rede privada (somente host) em vez da rede pública (em ponte), usando esta linha no arquivo Vagrant:

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

Recebo a mesma saída (exceto Adapter 2: hostonly), mas não consigo ssh manualmente.

Eu também tentei config.vm.network "private_network", ip: "10.0.0.100".

Eu também tentei definir config.ssh.passwordno arquivo Vagrant. Isso gera saída, SSH auth method: passwordmas ainda não se autentica.

E também tentei reconstruir a caixa e verificar novamente tudo o que foi dito acima.

Parece que outros tiveram sucesso com essa configuração , então deve haver algo que estou fazendo de errado.

Eu encontrei esta discussão e possibilitou a GUI, mas isso não ajuda.

Respostas:


1

Verifique se a sua primeira interface de rede é NAT. A outra segunda interface de rede pode ser o que você quiser quando estiver construindo uma caixa. Não esqueça o usuário do Vagrant, conforme discutido no tópico do Google.

Boa sorte.


171

Para informações gerais: por padrão, para ssh-connect, você pode simplesmente usar

usuário: vagrantsenha:vagrant

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

Primeiro, tente: para ver o que insecure_private_keyé vagrant na configuração da sua máquina

$ vagrant ssh-config

Exemplo:

$ 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

Segundo, faça: Altere o conteúdo do arquivo insecure_private_keycom o conteúdo da chave privada do seu sistema pessoal

Ou use: adicione-o ao arquivo Vagrant:

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 é sua chave privada local
  2. Sua chave privada deve estar disponível para o agente ssh local. Você pode verificar com ssh-add -L. Se não estiver listado, adicione-o comssh-add ~/.ssh/id_rsa
  3. Não se esqueça de adicionar sua chave pública ~/.ssh/authorized_keysna VM do Vagrant. Você pode fazer isso copiando e colando ou usando uma ferramenta como ssh-copy-id (usuário: rootsenha: vagrantporta: 2222)ssh-copy-id '-p 2222 root@127.0.0.1'

Se ainda assim não funcionar, tente o seguinte:

  1. Remover insecure_private_keyarquivo dec:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Executar vagrant up(vagrant será gerado um novo insecure_private_keyarquivo)

Em outros casos, é útil apenas definir forward_agent em Vagrantfile :

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

Útil:

A configuração do git pode ser feita com git-scm.com

Depois de configurar este programa e criar a chave privada do sistema pessoal, você estará no seu caminho de perfil:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Finalmente - sugiro que você veja o Ubuntu no Windows 10


4
no meu caso era problema por causa config.ssh.private_key_path = "~/.ssh/id_rsa"teve que remover esta linha para fazer o provisionamento de trabalho
holms

Tudo isso funcionou, mas eu também tive que remover minha entrada em hosts conhecidos. Eu estava tendo problemas quando se deslocam locais e fazer o login.
Pumphouse

@shilovk +1 Obrigado, obrigado, muito obrigado. O "Segundo, faça" fez o truque. Mais uma vez, muito obrigado, cara.
whitesiroi

Este apontou-me na direção certa; no meu caso, tudo o que tive que fazer foi excluir o arquivo .vagrant / machines / default / virtualbox / private_key e, após rodar vagrant up, substituiu o arquivo pelo correto - eu faria o backup do arquivo. arquivo apenas no caso
andrux

O primeiro e mais importante passo é verificar as configurações do BIOS, verifique se a virtualização está ativada.
precisa saber é o seguinte

83

Nenhuma das opções acima funcionou para mim. De alguma forma, a caixa teve a chave pública incorreta adicionada no arquivo vagabundo authorised_keys .

Se você ainda pode ssh na caixa com a senha vagrant (a senha é vagrant), ou seja,

ssh vagrant@localhost -p 2222

copie o conteúdo da chave pública de https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub no arquivo authorised_keys com o seguinte comando

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

Quando terminar, saia da VM e tente novamente o vagrant ssh. Deve funcionar agora.


4
execute vagrant reloadapós atualizar o arquivo allowed_keys. O Vagrant detectará automaticamente a chave não segura e a gerará novamente para você. Deve funcionar depois.
precisa

47

Se você tiver esse problema no vagrant 1.8.5, verifique este tópico no github:

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

É causada basicamente por um problema de permissão, a solução alternativa é apenas

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

então

vagrant reload 

FYI: esse problema afeta apenas o CentOS, o Ubuntu funciona bem.


Digamos que eu tenho 5 máquinas para um arquivo vagrant. Toda vez que executo, preciso fazer isso para cada máquina. Eu lá corrigir isso permanentemente para a instalação vagrant dado usando centos?
Pol

Só tinha de atualizar vagabundo para a versão 1.8.6 uso de ter 1.8.5 onde bug presisted
Pol

42

Execute os seguintes comandos na máquina convidada / 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

Então pare vagrant. Isso removerá e regenerará suas chaves privadas.

(Essas etapas pressupõem que você já criou ou já possui os diretórios ~ / .ssh / e ~ / .ssh / allowed_keys na sua pasta pessoal.)


26

Na minha experiência, esse tem sido um problema surpreendentemente frequente com novas máquinas vagantes. De longe, a maneira mais fácil de resolvê-lo, em vez de alterar a própria configuração, foi criar manualmente as chaves ssh necessárias no cliente e depois usar a chave privada no host.

  1. Faça login na máquina vagrant:, vagrant sshuse a senha padrão vagrant.
  2. Crie chaves ssh: por exemplo, ssh-keygen -t rsa -b 4096 -C "vagrant"( como recomendado pelo guia relevante do GitHub ).
  3. Renomeie o arquivo de chave pública (por id_rsa.pub padrão), substituindo o antigo: mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Serviço de recarga ssh em caso necessário: sudo service ssh reload.
  5. Copie o arquivo de chave privada (por padrão id_rsa) para a máquina host: por exemplo, use uma boa combinação de gato e prancheta cat .ssh/id_rsa, pinte e copie (devem existir melhores maneiras, invente uma!).
  6. Sair da máquina errante: logout.
  7. Encontre a chave privada atual usada pelo vagrant, observando sua configuração: vagrant ssh-config(procure, por exemplo, entdentityFile "/[....la/private_key".
  8. Substitua a chave privada atual pela que você criou na máquina host: por exemplo, nano /[...]/private_keye cole na área de transferência, se tudo mais falhar. ( Observe , no entanto, que, se sua chave_privada não for específica do projeto, mas compartilhada por várias máquinas vagrantes, é melhor configurar você mesmo o caminho para não quebrar outras máquinas que funcionem perfeitamente! Alterar o caminho é tão simples quanto adicionar uma linha config.ssh.private_key_path = "path/to/private_key"no arquivo Vagrant. ) Além disso, se você estiver usando uma máquina gerada pelo PuPHPet , poderá armazenar sua chave privada em um arquivo puphpet/files/dot/ssh/id_rsae ela será adicionada à configuração ssh do Vagrantfile automaticamente.
  9. Teste a instalação: vagrant sshagora deve funcionar.

Nesse caso, parabenize-se, logoutcorra, vagrant provisionse necessário, e continue com a tarefa significativa em mãos.

Se você ainda enfrentar problemas, pode ser útil adicionar sinalizador detalhado ao comando ssh para facilitar a depuração. Você pode passar isso (ou qualquer outra opção, nesse caso) após duplo traço. Por exemplo, digitando vagrant ssh -- -v. Sinta-se à vontade para adicionar quantos Vs precisar, cada um com mais informações.


Essa resposta me ajudou. Apenas para compartilhar minha experiência: De alguma forma (possivelmente durante a instalação do Capistrano, mas isso não está confirmado), meu arquivo allowed_key foi excluído na minha VM convidada. A recriação usando essas etapas funcionou e agora posso fazer o ssh sem solicitação de senha. Obrigado.
Martin Joiner

Depois de retirar as duas chaves (públicas / privadas) da máquina host, eu era capaz de refazer e determinação com este processo
vrwired

O uso do Git facilita a transferência do conteúdo do arquivo.
lloan

1
este funcionou para mim depois de qualquer outra coisa que eu tentei, falhei .. muito obrigado!
Nikolas 04/10

Isso funcionou para mim. A única coisa que fiz de diferente foi usar o ssh vagrant@10.0.0.0 -p 22 (password: vagrant)login na VM, pois vagrant sshnão estava funcionando para mim. 10.0.0.0é o endereço IP privado que defini no meu vagrantfile.
turrican_34

11

Isso também pode acontecer se você estiver tentando forçar sua VM a usar um usuário root por padrão para SSH ....

Por exemplo, uma configuração como essa no seu arquivo Vagrant pode causar esta falha:

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

Solução: comente essas linhas e tente novamente!


2
para mim definição só config.ssh.username = "vagabundo" e config.ssh.password = "vagabundo" fez o truque
psychok7

8

Problema: estava recebendo os erros de autenticação ssh, em uma caixa que provisionei. O original estava funcionando bem.

O problema para mim era a falta de uma chave privada .vagrant/machines/default/virtualbox/private_key. Copiei a chave privada do mesmo local relativo da caixa original e do Viola!


Eu acrescentaria que, como qualquer bom desenvolvedor, estamos verificando os .vagrantarquivos no git ... e, como tal, um rápido git checkoutarquivo mencionado salva o dia!
Ian Vaughan

8

Eu encontrei uma maneira de contornar as bagunças com as chaves no Win 8.2, onde não obtive sucesso com nenhum dos métodos mencionados aqui. Pode ser interessante que exatamente a mesma combinação de VirtualBox, Vagrant e a caixa funcionem no Win 7 Ultimate sem problemas.

Mudei para a autenticação de senha adicionando os seguintes comandos no Vagrantfile:

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

Observe que não tenho certeza de que essas são as únicas alterações necessárias porque já fiz:

  1. Gerei um novo par de chaves RSA e alterei o arquivo allowed_keys de acordo (tudo na máquina virtual, veja as sugestões acima e em outros lugares)

  2. Copiei a chave privada para o mesmo diretório em que o Vagrantfile reside e adicionei

     config.ssh.private_key_path = "./id_rsa"
    

Mas acredito que essas mudanças foram irrelevantes. Passei bastante tempo tentando, então não alterei a configuração de trabalho por razões óbvias :)


5

Incapaz de ficar vagabundo porque fica preso e atinge o tempo limite?

Recentemente, tive um "incidente com a água no laptop" e tive que migrar para um novo (a propósito, em um MAC).

Eu consegui todos os meus projetos em execução ao lado do que estava usando 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...

Não foi possível autenticar, repetiu várias vezes e acabou desistindo.

** Foi assim que recuperei a forma em 3 etapas: **

1 - Encontre o IdentityFile usado pelo 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 - Verifique a chave pública no IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Replace '<user-name>'with your user. Será algo parecido com isto:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Entre na máquina vagrant com a senha "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 - Adicione a chave pública ao arquivo allowed_keys. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Saia (crtl + d), pare o recipiente vagrant e traga-o de volta. $ vagrant halt $vagrant up

Espero que você tenha seus braços no ar agora ...

Consegui isso, com apenas uma pequena alteração, do artigo de Ned Batchelders - Ned, você é um campeão!


Você é um gênio, ou Ned Batchelders é. De qualquer maneira, ele corrigiu meu problema!
precisa saber é o seguinte

4

para mim, isso foi resolvido alterando as permissões na pasta .ssh no directort home vagrant (ou seja, "~ vagrant / .ssh"). Acho que atrapalhei as permissões ao configurar as chaves ssh para o meu aplicativo.

Parece que o arquivo 'allowed_keys' deve ser 'rw' apenas para o usuário 'vagrant', portanto "chmod 600 allowed_keys"; o mesmo vale para o próprio diretório e seu pai:

tão:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Foi só depois que todas essas permissões foram restauradas que o vagabundo ssh começou a funcionar novamente.

Eu acho que tem algo a ver com segurança ssh. Ele se recusa a reconhecer certificados se eles são acessíveis de alguma maneira além do usuário atual, de modo que tentativas vagantes de logon são, assim, rejeitadas.


Às vezes, não consigo mudar, apenas executando o sudo chmod 600 allowed_keys, mas ele permanece inalterado. Eu acho que isso tem algo a ver que é compartilhado no Windows também.
Darius.V

Às vezes, isso acontece se o diretório estiver em um compartilhamento, por exemplo/vagrant/...
robert

1
Além da minha resposta, gostaria de votar nesta resposta. Em outra máquina minha, era exatamente esse problema - proprietário errado do diretório /home/vagrant/.ssh. Foi "root: root", mas deve ser "vagabundo: vagabundo"
Michael

4

Se você estiver usando a configuração SSH padrão no seu VagrantFile e começar a ver erros de autenticação SSH após associar novamente a sua caixa de VM devido a uma falha, tente substituir a chave pública na sua máquina vagrant.

O Vagrant substitui a chave pública associada ao par de chaves privadas inseguras a cada logout devido a razões de segurança. Se você não desligou corretamente sua máquina, o par de chaves pública / privada pode ficar fora de sincronia, causando erro de autenticação SSH.

Para resolver esse problema, simplesmente carregue a chave privada insegura atual e copie o par de chaves públicas no arquivo allowed_keys da sua VM.


3

Esta pode ser a última resposta da lista, mas funcionou para mim e eu não encontrei essa resposta em nenhum lugar, encontrei-me após 2 dias de pesquisas, então é melhor tentar se nada mais funcionou até agora.

No meu caso, o problema veio do meu VirtualBox. Não sei por que motivo uma opção foi desabilitada e deveria ter sido habilitada.

insira a descrição da imagem aqui

Como você pode ver na imagem, houve alguns problemas de rede com o meu VirtualBox e o que eu tive que fazer para resolver esse problema foi selecionar minha máquina, pressionar configurações, guia rede e depois confirmar se a opção Cabo conectado Foi selecionado. No meu caso, esta opção não foi selecionada e eu falhei nesta etapa:

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

Primeiro, pensei que a porta já estivesse em uso, depois reinstalei o Vagrant e tentei outras coisas, mas nenhuma delas funcionou para mim.


3

Isso já aconteceu comigo várias vezes e da maneira que resolvi:

  1. Verifique e verifique se o seu Vagrantfile possui o caminho correto da chave privada:

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

  2. Executar> comando vagrant ssh em um terminal linux

  3. Na sua máquina vagrant, vá para

    cd /home/vagrant/.ssh

e verifique se a chave ssh no arquivo allowed_keys é a mesma que você possui em sua máquina local em ~ / .ssh / id_rsa.pub. Caso contrário, substitua o da sua vag_ant autorizado_keys pela da sua máquina local, encontrada em ~ / .ssh / id_rsa.pub.

  1. Recarregar Vagrant:

    recarga de vagabundo

Espero que isso ajude outra pessoa. Felicidades!


Eu não tenho pasta ~ / .ssh, o que devo fazer?
Ashish Karpe

O @AshishKarpe o cria com permissão 700 e cria um authorized_keysarquivo com permissão 600 dentro.
Hogan

3

1. Localize a chave privada no host:

vagrant ssh-config
#

Resultado:

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

2. Armazene o caminho da chave privada e o número da porta nas variáveis:

Use estes dois comandos com a saída de cima:

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

3. Gere uma chave pública e faça o upload para a máquina convidada:

Cópia / massa, não são necessárias alterações:

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
Eu tive o problema descrito tantas vezes, geralmente após empacotar e depois restaurar a caixa do Vagrant. O que funcionou para mim foi adicionar a seguinte configuração para instruir o Vagrant a inserir sua chave pública na VM: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueMas desta vez a configuração acima não fez nada. Eu realmente não sei por que, tentei depurar por que a chave não é inserida sem sorte. Então, eu recusei a sua solução e pronto! Funciona!
Stz184

2

Solução para Mac:

  1. Adicionada chave ssh id_rsa local à chave privada vagrant

    vi /Usuários//.vagrant/machines/default/virtualbox/private_key

    /Usuários//.ssh/id_rsa

  2. chave pública copiada /Usuários//.ssh/id_rsa.pub na caixa vagrant

ssh vagrant@localhost -p 2222 (senha: vagrant) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Problema resolvido.

Graças a


1

também não poderia ir além:

padrão: método de autenticação SSH: chave privada

Quando usei a GUI do VirtualBox, ele me disse que havia uma incompatibilidade no processador do SO.

Para ficar mais vagaroso, progredindo nas configurações do BIOS, contra-intuitivamente:

Desativar: virtualização

Ativar: VT-X

Tente alternar essas configurações no BIOS.


1

Antes de tudo, você deve remover o arquivo insecure_private_key gerado automaticamente, e depois gerar novamente esse arquivo digitando

vagrant ssh-config

então

vagrant halt
vagrant up

Deveria funcionar


Eu tentei isso, mas ainda estou recebendo erro é isso porque eu estou usando o Ubuntu Virtual Box VM dentro do qual eu estou tentando vagrant?
Ashish Karpe

#vagrant up Trazendo a máquina 'padrão' com o provedor 'virtualbox' ... ==> padrão: Limpando as portas encaminhadas definidas anteriormente ... ==> padrão: Limpando as interfaces de rede definidas anteriormente ... ==> padrão: Preparando interfaces de rede com base na configuração ... padrão: Adaptador 1: nat ==> padrão: Portas de encaminhamento ... padrão: 22 (convidado) => 2222 (host) (adaptador 1) ==> padrão: Inicializando a VM .. . ==> padrão: Aguardando a inicialização da máquina. Isso pode demorar alguns minutos ... padrão: endereço SSH: 127.0.0.1:2222 padrão: SSH usuário: padrão errante: método de autenticação SSH: chave privada
Ashish Karpe

1

Resolvi o problema da seguinte maneira. 1. Crie uma nova chave SSH usando o 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. Quando você for solicitado a "Digite um arquivo para salvar a chave", pressione Enter. Isso aceita o local padrão do arquivo.

    Digite um arquivo no qual salvar a chave (/Users/[you ♡/.ssh/id_rsa): [Pressione Enter]

  2. No prompt, digite uma senha segura. Você pode deixar em branco e pressionar enter se não precisar de uma senha.

    Digite um arquivo no qual salvar a chave (/Users/[you ♡/.ssh/id_rsa): [Pressione Enter]

  3. Para conectar-se ao seu VM Vagrant, digite o seguinte comando

    ssh vagrant @ localhost -p 2222

Quando receber a seguinte mensagem, digite "yes" e pressione 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. Agora, para estabelecer um tipo de conexão SSH: $ vagrant ssh

  2. Copie a chave pública do host no arquivo allowed_keys na VM do Vagrant. Para isso, vá para a pasta “Users / [you] /. Ssh” e copie o conteúdo no arquivo id_rsa.pub na máquina host e passe para o arquivo “~ / .ssh / allowed_keys” na VM do Vagrant.

  3. Alterar permissão na pasta SSH e no arquivo allowed_keys na VM do Vagrant
  4. Reinicie o vagrant com: $ vagrant reload

0

Eu iniciei a máquina, então:

vagrant ssh-config

Eu recebi o seguinte:

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

Então eu corri

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

Máquina inicializada a partir daqui

  • El Capitan 10.11.1 Beta (15B38b)
  • Virtual Box 5.0.8 r103449
  • Vagrant 1.7.4

0

Entre todas as respostas aqui, há muitas coisas boas para tentar. Para completar, se você

ssh vagrant@localhost -p 2222

como o @Bizmate sugere, e falhar, verifique se você tem

AllowUsers vagrant

na /etc/ssh/sshd_configmáquina do seu convidado / vagabundo.


0

Estou usando o Vagrant com uma instalação Puphpet de maio de 2015 e tive esse problema. Parece que a configuração gerada não tratou o comportamento do Vagrant 1.7.4 (ou talvez um pouco mais cedo?) De regenerar chaves ssh se detectar uma chave insegura.

Eu o resolvi adicionando o seguinte no meu Vagrantfile gerado pelo Puphpet (instalação local) dentro da cláusula "if File.file? (CustomKey)":

config.ssh.insert_key = false

Confirmação de referência


0

Todas as etapas corretas que segui para corrigir esse problema abaixo ocorreram quando o comando vagrant up foi executado.

Estes são os passos que eu segui

  1. crie uma pasta. por exemplo, F: \ projetos
  2. Abra esta pasta no git bash e execute este comando ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (coloque um endereço de email válido)
  3. Em seguida, gere o par de chaves em dois arquivos separados na pasta do projeto. por exemplo, projeto (arquivo de chave privada), project.pub (arquivo de chave pública)
  4. Vá para este local C: \ Users \ acer.vagrant.d e localize o arquivo insecure_private_key
  5. Faça backup do arquivo e copie o conteúdo da chave privada recém-criada e cole-a no arquivo insecure_private_key. Em seguida, copie insecure_private_key e cole-o também neste local.
  6. Agora vagueie no local do seu projeto. depois de gerar o problema acima, digite vagrant ssh e entre, fornecendo nome de usuário e senha. (no nome de usuário e senha padrão são definidos como vagrantes)
  7. Vá para este local cd /home/vagrant/.ssh e digite mv allowed_keys allowed_keys_bk
  8. Em seguida, digite ls -al e digite vi allowed_keys para abrir o arquivo allowed_keys file vi editor.
  9. Abra a chave pública gerada no bloco de notas ++ (project.pub) e copie o conteúdo Em seguida, pressione i no git bash para ativar o modo de inserção no editor vi e clique com o botão direito do mouse e cole. Depois de pressionar escape para sair do modo de inserção
  10. : wq! para salvar o arquivo e digite ls -al
  11. Em seguida, as permissões são definidas como abaixo, sem necessidade de alterar drwx ------. 2 vagrant vagrant 4096 13 de fevereiro 15:33. drwx ------. 4 vagrant vagrant 4096 13 de fevereiro 14:04 .. -rw -------. 1 vagrant vagrant 743 13 de fev 14:26 allowed_keys -rw -------. 1 raiz raiz 409 13 de fevereiro 13:57 allowed_keys_bk -rw -------. 1 vagrant vagrant 409 2 de janeiro 23:09 allowed_keys_originial Caso contrário, digite chmod 600 allowed_keys e digite também este comando chown vagrant: vagrant allowed_keys
  12. Por fim, execute a parada vagrant e vagrant novamente.

************************ ISTO É MUITO BOM PARA MIM ******************** ***********


0

Apenas para aquelas pessoas que foram idiotas como eu, ou tiveram algo estranho acontecendo com sua máquina vagabunda. Este erro também pode ocorrer quando você alterou as permissões do diretório inicial do usuário vagante (deliberadamente ou por acidente).

Você pode fazer login (como descrito em outras postagens) usando a senha ('vagrant') e, em seguida, execute o seguinte comando para corrigir as permissões.

sudo chown -R vagrant:vagrant /home/vagrant

Em seguida, você poderá fazer login novamente sem inserir a senha.

TL; DR: as permissões na sua pasta pessoal vagrant estão incorretas.


0

Simples:

homestead destroy
homestead up

Editar (Não é tão simples como se pensava):

O problema era que novas versões do homestead usam php7.0e outras coisas. Para evitar esta confusão se certifique-se de definir o verisonem Homestead.yml:

version: "0"

0

Resolvi esse problema executando comandos no Windows 7 CMD, conforme indicado aqui. Aqui está o último post do link neste tópico,

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

Tenho batido minha cabeça nisso nos últimos dias em uma caixa de base reembalada. (Mac OS X, El Capitan)

Seguindo o procedimento do @Radek, fiz 'vagrant ssh-config' na caixa de origem e obtive:

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

Na nova cópia, esse comando me deu:

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

Então, acabei de adicionar esta linha na nova cópia:

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

Não é perfeito, mas posso continuar com minha vida.


0

Outra solução simples, no Windows, vá para o arquivo Homestead / Vagrantfile e adicione estas linhas para conectar-se com um nome de usuário / senha em vez de uma chave privada:

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

Então, finalmente parte do arquivo ficará assim:

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

Espero que esta ajuda ..


0

Eu tentei isso na minha máquina VM

alterar as permissões / home / vagrant (fiz um chmod 700 nele)

agora eu posso ssh diretamente nas minhas caixas

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.