如何为 vagrant 控制的虚拟机提供私有 ssh 密钥?

如何为 vagrant 控制的虚拟机提供私有 ssh 密钥?

默认情况下,Vagrant 使用通过 vagrant ssh 登录机器时使用的不安全的私钥。

Vagrant 支持通过 private_key_path 指定不同的私钥,但我不清楚如何最好地通过 box 文件传递​​此密钥。我发现的教程和网站通常假设用户已将密钥安装在公共位置。

不过,我只想提供一个盒子文件,不需要额外的设置步骤。

我只能使用 vagrant 的标准 ssh 密钥来执行此操作吗?

答案1

默认私钥随 Vagrant 一起提供,因此也不需要额外的步骤。只需使用对应的公钥在虚拟机中。添加和发送自定义密钥可能仅在您控制盒子的分发并且不希望任何其他人能够登录正在运行的实例时才有意义。即使在这种情况下,我也可能会在配置步骤中安装和配置新密钥。

话虽如此,Vagrant box 文件是一个 zip 或(可选 gzip 压缩)tar 存档。您可以将私钥包含到那里的顶级目录中,并将公钥添加到 VM 本身中的 vagrant ssh 用户的 authorized_keys 中。

然后配置 Vagrant 来使用密钥,您需要将 Vagrantfile 包含到框中,其内容如下:

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

相关内容