the*_*777 3 ssh vagrant vagrantfile
首先,我为我的流浪盒设置了一个单独的ssh密钥.我在〜/ .ssh/config上进行了此设置
Host vag_ubuntu14
HostName 127.0.0.1
Port 2222
User vagrant
IdentityFile ~/.ssh/vag_ubuntu14/id_rsa
Run Code Online (Sandbox Code Playgroud)
然后我用这个命令将公钥复制到了流浪盒的〜/ .ssh/authorized_keys.
cat ~/.ssh/vag_ubuntu14/id_rsa.pub | ssh -p2222 vagrant@127.0.0.1 'cat > ~/.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)
所以当运行ssh vag_ubuntu14按预期工作时.但是跑到vagrant sshsv到流浪者的盒子是行不通的.它会导致身份验证失败
这是我当前的Vagrant文件,其中指定了私钥的路径.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu14_04"
config.vm.provider "virtualbox" do |vb|
vb.name = "Ubuntu 14.04"
end
config.vm.provision :shell, path: "provision/bootstrap.sh"
config.ssh.private_key_path = '/home/chris/.ssh/vag_ubuntu14/id_rsa'
end
Run Code Online (Sandbox Code Playgroud)
但是当我运行时vagrant ssh-config,它不尊重我在Vagrantfile上指定的私钥的自定义路径.
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/chris/ubuntu14_04/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
Run Code Online (Sandbox Code Playgroud)
对于任何遇到同样问题的人.我发现解决方案非常简单.
为您的Vagrantfile上的私钥位置的自定义配置.您必须先删除默认私钥.
您可以通过运行以下命令查看私钥的位置:
`vagrant ssh-config`
Run Code Online (Sandbox Code Playgroud)
删除IdentityFile上指定的私钥.
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/chris/ubuntu14_04/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
Run Code Online (Sandbox Code Playgroud)
当您删除预装在流浪盒上的私钥时,只需在Vagrantfile上指定新私钥的位置即可.
config.ssh.private_key_path = 'location of your private key'
要检查您的新私钥是否为已读取的私钥,请再次运行vagrant ssh-config.
| 归档时间: |
|
| 查看次数: |
4095 次 |
| 最近记录: |