SSH entre múltiples máquinas virtuales Vagrant

SSH entre múltiples máquinas virtuales Vagrant

Estoy intentando instalar un clúster local de 3 nodos de HP Vertica. La instalación de Vertica utiliza SSH para instalar el software del servidor DB en cada nodo cuando se activa desde cualquiera de los nodos.

Recibo un error que dice "Permiso denegado (clave pública). He revisado las diversas publicaciones de StackOverflow y obtuve un VagrantFile de la siguiente manera: -

# -*- mode: ruby -*-
# vi: set ft=ruby :

BOX_IMAGE = "ubuntu/xenial64"
NODE_COUNT = 3

Vagrant.configure("2") do |config|
    (1..NODE_COUNT).each do|i|
      config.vm.define "vertica_node#{i}" do |subconfig|
        subconfig.vm.box = BOX_IMAGE
        subconfig.vm.hostname="verticaNode#{i}"

        if i == 1
          subconfig.vm.network "forwarded_port", guest: 5433, host: 5433, id: "Vertica DBEngine"
          subconfig.vm.network "forwarded_port", guest: 5450, host: 5450, id: "Vertica MC"
          subconfig.vm.network "forwarded_port", guest: 1527, host: 1527, id: "Vertica MCDatabase"
        end
        subconfig.vm.network "private_network", ip: "192.168.33.#{i + 10}"

        subconfig.vm.synced_folder "./data", "/vagrant/data", create: true

        subconfig.vm.provider "virtualbox" do |vb|
          vb.name = "VerticaUbuntu_Node#{i}"
          vb.memory = "2048"
        end

      end
    end
  config.ssh.forward_agent = true
  config.ssh.insert_key    = false
  config.ssh.private_key_path = ["~/.vagrant.d/insecure_private_key","~/.ssh/id_rsa"]
  config.vm.provision "shell", path: "bootstrap.sh"
  config.vm.provision "shell", privileged: false do |s|
    ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
    s.inline = <<-SHELL
    echo #{ssh_pub_key} >> /home/$USER/.ssh/authorized_keys
    sudo bash -c "echo #{ssh_pub_key} >> /root/.ssh/authorized_keys"
    SHELL
  end
end

Aparecen las 3 máquinas virtuales. Puedo SSH desde el anfitrión a cada invitado. Mientras estoy como invitado, puedo hacer ping a los demás invitados.

Si intento hacer SSH de un invitado a uno de los otros invitados, recibo un mensaje

The authenticity of host '192.168.33.11 (192.168.33.11)' can't be established.
ECDSA key fingerprint is SHA256:kEdfmMkISpmDMKGGOw77zCLakujVWZYRQomCMYTWZ0E.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.33.11' (ECDSA) to the list of known hosts.
Permission denied (publickey).

Agradecería cualquier ayuda para resolver este problema.

Respuesta1

yo sueloDesencadenantes vagabundospara poder realizar ssh de una máquina a otra:

Vagrant.configure("2") do |config|
  config.vm.define "master", primary: true do |master|
    # something
  end

  config.vm.define "node" do |node|
    # something else
    node.trigger.after :up do |trigger|
      trigger.run = { inline: 
        "vagrant ssh master -- cp /vagrant/.vagrant/machines/node/virtualbox/private_key ~/.ssh/id_rsa"
      }
    end
  end
end

información relacionada