Como entregar chaves ssh privadas para um virtualbox controlado pelo vagrant?

6

Por padrão, o Vagrant usa uma chave privada insegura usada ao fazer login na máquina com o ssh vagante.

O Vagrant suporta a especificação de uma chave privada diferente via private_key_path, mas não estou claro como posso entregar melhor essa chave com o arquivo de caixa. Os tutoriais e sites que eu encontrei geralmente assumem que os usuários têm a chave instalada em um lugar comum.

No entanto, gostaria de fornecer apenas um arquivo de caixa sem etapas adicionais de configuração.

Só posso fazer isso com a chave ssh padrão do vagrant?

    
por JE42 06.05.2014 / 21:28

1 resposta

6

A chave privada padrão é fornecida com o Vagrant, portanto, não há etapas adicionais. Basta usar a a chave pública correspondente na VM. Adicionar e enviar uma chave personalizada só pode fazer sentido quando você controla a distribuição da caixa e não quer que mais ninguém consiga efetuar login em instâncias em execução. Mesmo nesse caso, eu provavelmente instalaria e configuraria uma nova chave em uma etapa de provisão.

Dito isto, o arquivo da caixa Vagrant é um arquivo zip ou (opcionalmente gzipped) tar. Você pode incluir a chave privada, por exemplo, no diretório de nível superior, e adicionar a chave pública ao authorized_keys do usuário do ssh do vagrant na própria VM.

Em seguida, para configurar o Vagrant para usar a chave, inclua um Vagrantfile na caixa com conteúdo como:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = File.expand_path("../my_secret_key", __FILE__)
end
    
por 17.06.2014 / 11:23