我的 vagrant box(trusty64) 中有一个新用户,我正尝试通过 ssh 登录。我不想登录vagrant
用户之后vagrant up
,而是想登录我的用户名。
我目前所做的
- 在我的客户机器中创建了一个用户。
- 使用以下方式在我的主机中创建 ssh 密钥
ssh-keygen
- 使用以下方法将 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
)。