在 vagrant ssh 之后无密码 ssh 到 vagrant 加载另一个用户

在 vagrant ssh 之后无密码 ssh 到 vagrant 加载另一个用户

我的 vagrant box(trusty64) 中有一个新用户,我正尝试通过 ssh 登录。我不想登录vagrant用户之后vagrant up,而是想登录我的用户名。

我目前所做的

  1. 在我的客户机器中创建了一个用户。
  2. 使用以下方式在我的主机中创建 ssh 密钥ssh-keygen
  3. 使用以下方法将 ssh 密钥复制到客户机ssh-copy-id -p 2222 -i [email protected]

Vagrantfile 的部分内容如下

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "shash"
  config.ssh.forward_agent = true
  config.ssh.private_key_path = "~/.ssh/authorized_keys"

我可以直接使用登录,但当我输入时,我一直收到以下错误ssh -p '2222' '[email protected]'vagrant up

default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

任何能帮助解决这一问题的帮助都将非常感谢!

答案1

config.ssh.private_key_path应该指向你的私钥文件(通常~/.ssh/id_rsa— 运行时会显示文件名ssh-keygen),不是 ~/.ssh/authorized_keys

答案2

实现此目的的另一种方法是将以下内容添加到底部~vagrant/.bashrc

ssh chsc
exit

如果您想避免创建和安装 SSH 密钥的麻烦,您可以改用;但是,如果您需要从框内连接到外部服务器,su这不允许在 Vagrant 框内使用您的 SSH 转发代理:ssh

sudo su chsc
exit

在进行此类更改时,~vagrant/.bashrc如果出现错误,您可能会将自己锁定在 shell 之外。我建议保持以 身份登录的终端处于打开状态vagrant,直到您确保一切正常。如果出现问题,只需重命名 .bashrc ( mv .bashrc .bashrc-bak)。

相关内容