在vagrant box上意外删除了authorized_keys

3
我在vagrant虚拟机中不小心删除了我的authorized_keys文件,现在无法通过SSH连接它,但我仍然可以通过控制台连接。请问我该如何重新创建此文件夹以使其允许我再次进行连接?
我的主机上有.d.vagrant/insecure_private_key文件,我需要创建一个公钥并将其移动过去,还是需要同时移动私钥?
2个回答

6
在主机上运行以下命令:
cd <vagrant_project_directory>
ssh-keygen -y -f `vagrant ssh-config | grep IdentityFile | rev | cut -d ' ' -f1 | rev`

它将显示当前配置的私钥的公钥。

将结果添加到Vagrant盒子机器上的~/.ssh/authorized_keys中。


我已经重新添加了公钥,但是vagrant仍然在要求密码,我有什么遗漏吗? - user1157885
我明白了。不过我没有.vagrant文件夹,我有一个.vagrant.d文件夹,它们是一样的吗?(我猜不是,因为我的.vagrant.d文件夹结构与你的帖子中的不同..) - user1157885
啊,我明白了。我找到了我的.vagrant文件夹,但里面没有私钥文件,这是否意味着它仍在使用默认值? - user1157885
谢谢你们的帮助,我很感激,但现在问题已经解决了。上面的命令没有正确运行(我认为这是因为我的主机是Windows机器),但我使用其他评论中的提示来解决它。问题是当我重新创建authorized_keys时,我以为它应该是一个文件夹,而没有意识到它实际上是一个文件。 - user1157885
学习使用 ssh-keygen 命令别名,以前从未想过,但现在看来非常合理。 - Frederic Henri

4

运行vagrant ssh-config命令来查看虚拟机使用的私钥

如果你正在使用Vagrant不安全的密钥,你可以:

  1. 创建权限为600的~/.ssh/authorized_keys文件
  2. 下载vagrant公钥并将其复制到该文件中

如果你使用了自己的私钥,请重复以上步骤,但要从你的私钥生成公钥。

你不需要移动私钥,它必须保留在本地,只用于登录到虚拟机(除非你从虚拟机通过SSH登录到其他服务器,如Github或其他需要密钥的SSH服务器,但那是另一回事)。


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