Vagrant ssh 提示输入密码
Vagrant ssh promtps for password
我对 vagrant ssh
有一个 st运行ge 问题。类似的问题,例如 , or (vagrant & ssh) require password, or Vagrant ssh authentication failure 对我没有帮助。
所以,剧情。
我有一个虚拟机 运行 Ubuntu 14.04.3。所有设置都是根据这篇文章进行的:https://blog.engineyard.com/2014/building-a-vagrant-box.
Note: I can ssh to this virtual machine using Putty with vagrant's insecure_private_key (converted to *.ppk), which is located "C:/Users/Gino/.vagrant.d/insecure_private_key. Password is not promtped.
然后我打包了这个虚拟机,init vag运行t用这个包和运行vagrant up
。我收到“Warning: Authentication failure. Retrying...
”错误。但是尽管如此我可以vagrant ssh
到这台机器,但它要求我输入密码。如果我尝试使用带有必要密钥的 Putty ssh
访问它(如第一段中所示),它也会要求我输入密码。
我 vagrant halt
编辑了这台机器,在 VirtualBox VM 的列表中找到它并手动 运行 它。之后我尝试使用 Putty 和相同的密钥 ssh
到这台机器并成功 - 我可以不用任何密码登录。
vagrant ssh-config
的结果,如果需要:
h:\VagrantBoxes\main-server32>vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "C:/Users/Gino/.vagrant.d/insecure_private_key"
IdentitiesOnly yes
LogLevel FATAL
我的Vagrantfile
(是自动生成的,几乎什么都没有,只是添加了评论中的建议行):
Vagrant.configure(2) do |config|
config.vm.box = "vagrant-main-server32"
config.ssh.insert_key = false
end
那么这里有什么奥秘呢?为什么 ssh
使用密钥在没有 vagrant up
的情况下工作并且失败并提示输入密码?
Note. Another funny thing: it still can not authenticate during
vagrant up
. But if at the time when errors "authentication failure"
appear I log in to vm through virtualbox, it also succeed to log in in
the window with vagrant up
. And then vagrant ssh
works.
我在 vagrant 1.8.1 上遇到了同样的问题,在我使用的几个盒子上(即:geerlingguy/centos6)
我在这些盒子上使用 Vagrant 1.7 没有任何问题。
在研究了为什么我不能在那个盒子里使用 ssh 后,盒子上的 /home/vagrant 似乎有 755 个权限并且 ssh 阻止了对具有这些权限的用户的身份验证
/var/log/secure 的摘录:
Jan 28 15:11:36 server sshd[11721]: Authentication refused: bad ownership or modes for directory /home/vagrant
要修复该虚拟机,我只需更改权限 /home/vagrant(对其执行 chmod 700),现在我可以直接通过 ssh 进入我的盒子
我不知道怎么直接修复我觉得你应该直接修改你的盒子
希望对您有所帮助!
编辑:我认为这是来自主机的共享文件夹,但共享的是 /vagrant 而不是 /home/vagrant
我在 ~/.ssh/config
的顶部有这个旧设置。
PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa
删除后,vagrant ssh
不再询问密码。
如果你将 Vagrantfile 保存在外部硬盘驱动器上并使用 exfat 因为你像我一样跨平台工作,你也会遇到这个错误。由于exfat不保存权限,ssh会一直认为私钥权限是777 => 开启。
我把这个脚本放在一起作为在 powershell 和 bash 上运行的解决方法(与 Linux、Mac 和 Windows 兼容):
# ssh-agent # uncomment if your ssh-agent isn't running as a service
cat V:\vm\arch_template\.vagrant\machines\default\virtualbox\private_key | ssh-add -
ssh -p 2222 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no vagrant@localhost
它需要一个有效的 ssh-agent 配置。还要注意正确的端口!如果 2222 在 vagrant up
.
期间不可用,Vagrant 会将其更改为不同的端口
我对 vagrant ssh
有一个 st运行ge 问题。类似的问题,例如
所以,剧情。
我有一个虚拟机 运行 Ubuntu 14.04.3。所有设置都是根据这篇文章进行的:https://blog.engineyard.com/2014/building-a-vagrant-box.
Note: I can ssh to this virtual machine using Putty with vagrant's insecure_private_key (converted to *.ppk), which is located "C:/Users/Gino/.vagrant.d/insecure_private_key. Password is not promtped.
然后我打包了这个虚拟机,init vag运行t用这个包和运行vagrant up
。我收到“Warning: Authentication failure. Retrying...
”错误。但是尽管如此我可以vagrant ssh
到这台机器,但它要求我输入密码。如果我尝试使用带有必要密钥的 Putty ssh
访问它(如第一段中所示),它也会要求我输入密码。
我 vagrant halt
编辑了这台机器,在 VirtualBox VM 的列表中找到它并手动 运行 它。之后我尝试使用 Putty 和相同的密钥 ssh
到这台机器并成功 - 我可以不用任何密码登录。
vagrant ssh-config
的结果,如果需要:
h:\VagrantBoxes\main-server32>vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "C:/Users/Gino/.vagrant.d/insecure_private_key"
IdentitiesOnly yes
LogLevel FATAL
我的Vagrantfile
(是自动生成的,几乎什么都没有,只是添加了评论中的建议行):
Vagrant.configure(2) do |config|
config.vm.box = "vagrant-main-server32"
config.ssh.insert_key = false
end
那么这里有什么奥秘呢?为什么 ssh
使用密钥在没有 vagrant up
的情况下工作并且失败并提示输入密码?
Note. Another funny thing: it still can not authenticate during
vagrant up
. But if at the time when errors "authentication failure" appear I log in to vm through virtualbox, it also succeed to log in in the window withvagrant up
. And thenvagrant ssh
works.
我在 vagrant 1.8.1 上遇到了同样的问题,在我使用的几个盒子上(即:geerlingguy/centos6)
我在这些盒子上使用 Vagrant 1.7 没有任何问题。
在研究了为什么我不能在那个盒子里使用 ssh 后,盒子上的 /home/vagrant 似乎有 755 个权限并且 ssh 阻止了对具有这些权限的用户的身份验证
/var/log/secure 的摘录:
Jan 28 15:11:36 server sshd[11721]: Authentication refused: bad ownership or modes for directory /home/vagrant
要修复该虚拟机,我只需更改权限 /home/vagrant(对其执行 chmod 700),现在我可以直接通过 ssh 进入我的盒子
我不知道怎么直接修复我觉得你应该直接修改你的盒子
希望对您有所帮助!
编辑:我认为这是来自主机的共享文件夹,但共享的是 /vagrant 而不是 /home/vagrant
我在 ~/.ssh/config
的顶部有这个旧设置。
PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa
删除后,vagrant ssh
不再询问密码。
如果你将 Vagrantfile 保存在外部硬盘驱动器上并使用 exfat 因为你像我一样跨平台工作,你也会遇到这个错误。由于exfat不保存权限,ssh会一直认为私钥权限是777 => 开启。
我把这个脚本放在一起作为在 powershell 和 bash 上运行的解决方法(与 Linux、Mac 和 Windows 兼容):
# ssh-agent # uncomment if your ssh-agent isn't running as a service
cat V:\vm\arch_template\.vagrant\machines\default\virtualbox\private_key | ssh-add -
ssh -p 2222 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no vagrant@localhost
它需要一个有效的 ssh-agent 配置。还要注意正确的端口!如果 2222 在 vagrant up
.