Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Acesso SSH windows 10 para a máquina Vagrant

Boa noite,

Não consigo acesso SSH as máquinas virtuais quando tento acesso através do IP fixo, já criei as chaves e salvei no arquivo authorized_keys, mas mesmo assim não consigo acessar, com o localhost ele dá erro de chave pública, acess denied (publickey), entre as VMs aparentemente está tudo funcionando corretamente.

Alguém poderia me dar uma ajuda com isso?

5 respostas

Estou com host windows 10, e duas máquinas vagrants com Ubuntu 18.04 uma para o ansible e outra para subir o servidor. É possível criar apenas uma máquina para o ansible subir o servidor/aplicação?

Olá Renato, tudo bem? Não entendi muito bem essa parte de "IP fixo", na verdade queria qual o tipo de configuração você colocou nos arquivos Vagrantfile das máquinas, poderia disponibilizar aqui pra gente poder verificar? Outra coisa, o Ansible só funciona em máquinas Linux, então é necessário que você tenha uma máquina Linux que vai provisionar outras máquinas também Linux.

Está com essa configuração as máquinas.

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.define "ansible" do |ansible|
    ansible.vm.network "public_network", ip: "192.168.1.24"
    ansible.vm.provision "shell", inline: "apt upgrade -y && \
                                           apt install software-properties-common && \
                                           add-apt-repository universe && \
                                           apt-add-repository --yes --update ppa:ansible/ansible &&\
                                           apt install -y ansible"    
    ansible.vm.provision "shell", inline: "cat /vagrant/id_ansible.pub >> .ssh/authorized_keys && \
                                           cp /vagrant/id_ansible /home/vagrant"
    ansible.vm.provision "shell", inline: "cat /vagrant/id_ssh.pub >> .ssh/authorized_keys && \
                                           cp /vagrant/id_ssh /home/vagrant/ && \
                                           chmod 600 /home/vagrant/id_ssh && \
                                           chown vagrant:vagrant id_ssh"
  end

  config.vm.define "ispconfig" do |ispconfig|
    ispconfig.vm.network "forwarded_port", guest: 80, host:8181
    ispconfig.vm.network "public_network", ip: "192.168.1.25"
    ispconfig.vm.provision "shell", inline: "apt upgrade -y"
    ispconfig.vm.provision "shell", inline: "cat /vagrant/id_ssh.pub >> .ssh/authorized_keys"
  end

end

O IP fixo que comentei é fazer a conexão ssh da seguinte forma:

ssh vagrant@192.168.1.24

"Outra coisa, o Ansible só funciona em máquinas Linux, então é necessário que você tenha uma máquina Linux que vai provisionar outras máquinas também Linux." Então, se eu subir apenas uma máquina e instalar o ansible nela consigo subir o server na mesma VM, certo?

solução!

Renato, você precisa fornecer a chave privada para fazer o acesso SSH dessa forma, usando o comando:

ssh -i "id_ansible" vagrant@192.168.1.24

Tenta dessa forma e fala se deu certo!

Sobre sua última pergunta, acho que não, nunca fiz esse teste, mais pense que o Ansible configura do zero a outra máquina, porém se fizer apenas em uma única máquina ele não deve funcionar já que não tem o controle total sobre a máquina, bem isso em teoria, como falei nunca fiz esse teste, e outra o Ansible é indicado quando desejamos provisionar várias máquinas de uma vez, então criamos um único script e passamos para o Ansible se encarregar de fazer o trabalho duro, como essa ideia acho que não faz muito sentido, seria como usar apenas um arquivo shell script como todo o roteiro.

Jonilson, deu certo obrigado!

Quanto a segunda parte, tem sentido o que você falou, mas estou tentando fazer um teste aqui para ver se da certo, caso dê certo abro outro tópico para falar sobre.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software