使用密钥以另一个用户身份通过​​ SSH 进入 Vagrant 框?

SSH into Vagrant box as another user using key?

我喜欢使用 "vagrant" 用户使用 Ansible 配置我的 Vagrant VM。但是一旦我设置好盒子,我希望能够使用 vagrant 帐户或我的个人帐户登录它 "smith." 但是,当我以 smith 身份登录时,我不想被提示输入我的密码。有没有办法设置这个?我在 Vagrant box 上创建了 smith 帐户,并将 public 和私有 SSH 密钥从 OS X 管理主机上的 .ssh 目录复制到 VM 上用户 smith 的 .ssh 目录.现在我可以通过 "ssh smith@192.168.2.100" 登录,但系统提示我输入密码。有没有办法配置两台机器,以便我可以使用我的 SSH 密钥登录?

谢谢。

# Vagrantfile
DEV_GID = 1001
Vagrant.configure(2) do |config|
  config.vm.box = "debian/jessie64"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "forwarded_port", guest: 443, host: 8443
  config.vm.network "private_network", ip: "192.168.2.100"
  config.vm.synced_folder "website/", "/srv/http/example.com",
      owner: "root",
      group: DEV_GID,
      mount_options: ["dmode=775"]
  config.vm.provision "shell", path: "provision.sh"
end

您不应复制 .ssh 目录中的所有文件,而应创建文件

 /home/smith/.ssh/authorized_keys

(或者你在 vagrant box 中的主文件夹所在的位置)在你的 vagrand box 中,copy-paste 你的 id_rsa.pub 在这个文件中。 copying-paste 我的意思是用编辑器打开 id_rsa.pub,复制所有内容,然后将其粘贴到 .ssh/authorized_keys 文件中。您还应该将目录权限更改为 0600。

你的私人 id_rsa 文件在 vagrant box 中不需要,它只在你用来 ssh 进入那个 vagrant box 的主机中需要。