无法通过SSH进入无所事事的虚拟机


11

安装在IP地址10.0.0.23为hostname的本地Vagrant机器lamp-vm

使用vagrant ssh命令,我可以很好地连接并完成我需要的一切。

这会产生一个错误

$ ssh vagrant @ lamp-vm -v -v

debug1:连接到地址10.0.0.23端口22:连接超时
ssh:连接到主机lamp-vm端口22:连接超时

我的/etc/hosts文件包含10.0.0.23 lamp-vm

我的.ssh / config文件看起来像

主机lamp-vm
用户无业游民
IdentityFile〜/ .ssh / vagrant

我已经尝试过ssh命令,也可以不使用-i /path/to/.sh/identity_file

如何使用SSH连接到我的Vagrant虚拟机?

Answers:


8

我也遇到了这个问题,这是我的最终配置,使我可以从主机中的任何位置切换到无所事事的计算机中。

Vagrantfile:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

ssh进入机器:

ssh vagrant@192.168.33.10

系统将提示您输入密码(默认为无业游民):

vagrant@192.168.33.28's password:

和繁荣,你在!

PS *您可以在主机的任何位置使用scp:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file

虽然这样做有效,但它非常脆弱-我发现我们的Vagrantfile对VirtualBox VM上的/ etc / network / interfaces进行了一些编辑,这意味着我的SSH连接将断开。本地主机连接(ssh -p 2222 vagrant@localhost)不会受到此影响。
RichVel

8

它很旧,但是由于没有答案,我将提供一个。命令:

vagrant ssh

等于

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

如果您适当地更改了更改命令,这是默认行为。首先,Vagrant将在您的来宾盒上创建vagrant用户,然后您将使用该用户ssh。如先前的人们所说,默认情况下,它将从主机上的端口2222转发到来宾上的端口22的流量(当您使用流浪汉时,您会看到该消息显示)。最后,Vagrant为ssh会话创建密钥,因此您不必这样做,因此在通过ssh连接时需要提供公钥作为参数。


这是真实正确的答案!可以正常工作,例如mobaxterm。您还需要为private_key指定完整路径
sineverba

6

此行为是设计使然。

Vagrant使用VirtualBox NAT模式,这意味着使用端口转发。

您不能使用NAT模式直接SSH到您的VM。

使用“ vagrant ssh”意味着vagrant将为您完成端口转发,因此您不必担心。我认为默认情况下它将连接到2222端口上的localhost,但它还会尝试找出任何端口号冲突。

如果您需要直接通过SSH到您的VM,请将VM切换到仅主机或桥接网络模式。


谢谢菲利普,但我将如何解决呢?抱歉,没有经验。
csi 2012年

1
我正在使用仅主机模式,问题仍然存在。
csi 2012年

应该是公认的答案。了解这一点非常有帮助-通过端口2222上的localhost是通往有效Vagrant设置的路由(由于某些原因,我无法使insecure_private_key密钥起作用。)我发现标准的“不安全私钥”没有工作,所以我最终在Vagrantfile中指定了不同的私钥和用户名,但是localhost端口2222部分不需要更改。
RichVel


3

Windows /流浪汉/ Ubuntu

这是对我有用的方法,您可以通过在ssh客户端上运行它来快速确定它是否会起作用。

ssh vagrant@127.0.0.1 -p 2222 -v

-v会将其置于详细模式并显示调试信息...

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1,OpenSSL 1.0.2e 2015年12月3日
debug1:连接到127.0.0.1 [127.0.0.1]端口
2222。debug1:已建立连接。
debug1:身份文件/home/Jamie/.ssh/id_rsa类型1
debug1:
身份文件/目录否debug1:身份文件/home/Jamie/.ssh/id_rsa-cert类型-1
debug1:key_load_public:无此类文件或目录目录
DEBUG1:标识文件/home/Jamie/.ssh/id_dsa类型-1
DEBUG1:key_load_public:没有这样的文件或目录
DEBUG1:标识文件/home/Jamie/.ssh/id_dsa-cert类型-1
DEBUG1:key_load_public:没有这样的文件或目录
debug1:标识文件/home/Jamie/.ssh/id_ecdsa类型-1
debug1:key_load_public:没有此类文件或目录
debug1:身份文件/home/Jamie/.ssh/id_ecdsa-cert类型-1
debug1:key_load_public:无此类文件或目录
debug1:身份文件/home/Jamie/.ssh/id_ed25519类型-1
debug1:key_load_public:无此类文件或目录
debug1:身份文件/home/Jamie/.ssh/id_ed25519-cert类型-1
debug1:为协议2.0
debug1 启用兼容模式:本地版本字符串SSH-2.0-OpenSSH_7.1
debug1 :远程协议版本2.0,远程软件版本OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1:匹配:OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * compat 0x04000000
debug1:验证为127.0.0.1:2222为'vagrant '
debug1:SSH2_MSG_KEXINIT发送
连接被127.0.0.1关闭

所以... SSH2_MSG_KEXINIT表示正在交换密钥。这很快就失败了...

在这种情况下,我删除了我的密钥并在VM上重新生成它们。(http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html

$ ls -al / etc / ssh / ssh
$ sudo rm -r / etc / ssh / ssh

$ sudo dpkg-reconfigure openssh-server

密钥重新生成后,我便可以通过SSH进入我的Vagrant Box。


0

销毁虚拟机
重新加载虚拟机
一切正常

不知道为什么,但是显然在第一次配置时没有正确加载某些内容。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.