Vagrant ssh转发代理不需要重复输入vagrant用户密码

4
我目前使用Vagrant和Chef来配置虚拟机并设置我的基于PHP的项目。这包括运行composer install,它实际上是对许多私有存储库进行git克隆。
在按照文档和此处的答案How to use ssh agent forwarding with "vagrant ssh"?中概述的设置ssh代理转发后,我已成功使其工作。
我遇到的问题是每当我启动虚拟机、配置虚拟机或SSH进入虚拟机时,我现在都被要求输入vagrant的默认密码,如下面的示例所示:
==> web: Waiting for machine to boot. This may take a few minutes...
web: SSH address: 192.168.77.185:22
web: SSH username: vagrant
web: SSH auth method: private key
Text will be echoed in the clear. Please install the HighLine or Termios libraries to suppress echoed text.
vagrant@192.168.77.185's password:

例子 2

  vagrant git:(master)  vagrant ssh
vagrant@192.168.77.185's password:

这对我来说非常不方便,因为我要在多个项目中工作,包括每天多次销毁和创建一些项目(如Chef测试厨房)。有没有办法自动使用我的公钥,这样我就不需要不断输入密码了?
1个回答

1
最近我从头开始创建一个新的Vagrant box后遇到了类似的问题。问题原来是~/.ssh/known_hosts(在OS X上)中的旧条目。
请尝试以下步骤(假定使用OS X或Linux):
  1. ssh进入您的Vagrant机器
  2. 键入ip addr或ifconfig或类似命令(取决于您的操作系统)
  3. 注意列出的IP地址,包括127.0.0.1
  4. 在主机上运行ssh-keygen -R {vm-ip-address}(确保为第3步中的地址包括127.0.0.1和[127.0.0.1])
  5. 确认已从~/.ssh/known_hosts中删除相关条目
  6. vagrant reload
  7. vagrant ssh
或者,您可以只需删除/移动/重命名~/.ssh/known_hosts文件,但这将需要重新确认多台已经ssh连接过的计算机的真实性。
希望这有所帮助。

参考资料:http://www.geekride.com/ssh-warning-remote-host-identification-has-changed/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接