尝试使用 Putty SSH 到本地 VM Ubuntu

wic*_*lls 173 ubuntu putty virtualbox

我已经设置了一个 Ubuntu 服务器的虚拟机,已经安装了 OpenSSH,现在我正在尝试使用 Putty 连接到它。在 Putty 中的“主机名”下,我放置了“Ubuntu”,因为我认为这是在设置 VM 时的名称。但是,我只是收到错误消息:“连接超时”。

我还尝试将“127.0.0.1”放入 Putty 中的主机名,然后得到“连接被拒绝”。请注意,我已经在 Oracle VM 中完成了 SSH 和 HTTP 的端口转发,所以我不知道如何让它运行。

mic*_*has 215

VirtualBox 将创建一个私有网络 (10.0.2.x),它将使用NAT连接到您的主机网络。(除非另有配置。)

这意味着您不能从主机网络直接访问私有网络的任何主机。为此,您需要一些端口转发。例如,在 VM 的网络首选项中,您可以将 VirtualBox 配置为在 127.0.1.1(主机的环回地址)上打开端口 22,并将任何流量转发到 10.0.2.1(VM 的内部地址)的端口 22

这样,您可以将 putty 指向 127.0.1.1 的端口 22,VirtualBox 会将此连接重定向到您的虚拟机,在那里它的 ssh 守护程序将回答它,从而允许您登录。

  • 如果您的主机上已经运行了 ssh,这将不起作用,因为端口重叠。将端口 127.0.1.1:2222 重定向到 10.0.2.X:22,然后从您的主机运行“ssh 127.0.1.1 -p 2222” (51认同)
  • 谢谢,这对我有用。从 cygwin 我现在可以`ssh username@127.0.1.1`并且我在。你需要的面板是设置->网络->端口转发,我的现在看起来像:http://imgur.com/BjGh3N2 (24认同)
  • 我自己刚刚遇到了这个问题 - 感谢您的解释。我基本上是按照你说的。我去了设置,我的连接显示“NAT”。我点击了屏幕底部的“端口转发”选项。我给它起了一个名字'PuTTY-port-fwd',协议TCP,主机IP 127.0.0.1主机端口2222来宾IP 10.0.2.15来宾端口22。然后我启动了PuTTY并将其设置为127.0.0.1端口2222并连接到我的 OpenSUSE 虚拟机。谢谢大家,希望这对将来的任何人都有帮助;-) (19认同)
  • 另外,请确保您在客户端操作系统上安装了 openssh-server。须藤 apt-get 安装 openssh-server (10认同)
  • 这对我有用,尽管我不得不告诉 VirtualBox 在 127.0.0.1 上打开端口 2222。然后我可以使用`ssh -p 2222 user@127.0.0.1`登录 (4认同)
  • 另外,就我而言,我不需要设置主机 ip 或来宾 ip。根据 https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/,您不需要这样做,我可以通过 ssh 连接到主机。我几乎花了 5 个小时才弄清楚这种差异并尝试了几乎所有方法。以为我会发布屏幕截图.. 所以其他人不会浪费他们 5 小时的生命。:) (2认同)

小智 57

我想使用腻子在虚拟机上连接到我的 ubuntu(出于舒适的原因,VB 很奇怪。除非它在正确的终端上,否则我无法工作)。反正,

  1. 确保您的 Linux 上安装了 ssh 客户端。如果没有,请安装它sudo apt install ssh
  2. 关闭操作系统。
  3. 现在在你的 VBSettings -> Network ->Adapter 1选择Host-only adapter-> 单击OK
  4. 现在启动您的操作系统。运行ifconfig; 现在 inet 地址是您的 IP。
  5. 使用它并在您的腻子上运行它。使用您的凭据登录。

使用仅主机适配器的唯一缺点是您的来宾操作系统无法访问更广泛的网络(例如 Internet)。

如果您还需要您的 VM 访问 Internet,请将适配器 1 保留为 NAT,并启用配置为 Host-Only 适配器的适配器 2。这将允许您的 VM 使用 NAT 连接到 Internet,并使用 Host-Only 与您的主机建立本地连接。

  • “bridged”会将 IP 放在您的本地接口上,并桥接访问更大的互联网 (6认同)
  • 如此处所述,使用两个接口而不是桥接的优点是您不依赖于接受请求的本地 dhcp 服务器。公共场所(机场、飞机、酒店,甚至大多数公司网络)中的大多数 dhcp 服务器不会通过同一个 wifi 适配器提供第二个 ip,因此桥接 VM 将无法在这些环境中工作。这是有关如何设置此特定配置的非常好的分步说明:http://christophermaier.name/2010/09/01/host-only-networking-with-virtualbox/ (3认同)

Rab*_*bin 26

首先,您需要确定您的 VM 是通过桥接连接还是通过 NAT 连接到主机,但通过以太方式,您需要将 VM IP 地址放在 putty 中才能连接到 ip,在 VM 终端运行此命令向您显示机器 IP 地址(并​​且没有 127.0.0.1 不是机器 IP 地址)

VM # ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的 IP 地址将减少 10.0.2.15,

首先尝试确保您可以在基本级别上与 VM 通信,在您的主机上打开一个终端窗口,然后尝试 ping 虚拟机

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms
Run Code Online (Sandbox Code Playgroud)

如果得到 ant 结果,请确保在 VM 上运行 ssh 服务,在 VM 的终端中以 root 身份输入,

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd
Run Code Online (Sandbox Code Playgroud)

这说明我们有一个名为 sshd(OpenSSH 守护进程)的 PI​​D(2361) 服务/进程监听端口 22。

您可以通过尝试从自己的 VM ssh 到该服务来测试该服务是否正常工作,

VM # ssh 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

接下来,您需要确保您没有阻止防火墙/iptables 中的端口 22,我不敢相信,但无论如何都要检查一下。在 VM 中键入此命令以显示 iptables,

VM # iptables -nvL INPUT
Run Code Online (Sandbox Code Playgroud)

在输出中你应该有这样的一行:

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW
Run Code Online (Sandbox Code Playgroud)

  • 如果 ping 10.0.2.15 超时怎么办?我使用 NAT。 (5认同)

小智 17

我的分辨率类似于 Roman T,但是我需要添加一些额外的步骤。就我而言,我在 Windows 2008 域中的 Windows 8 桌面上运行了 Ubuntu Server 14 VM。如果我尝试 NAT 或 Bridge,我可以访问 Internet,但无法通过 SSH 连接。

如果我尝试使用 Host Only Adapter,那么这将允许我通过 SSH 连接到机器但无法访问 Internet。

我也尝试过端口转发,但没有任何乐趣。打开Wireshark,它只是没有找到VM。

所以我的解决方案是添加第二个网络适配器。

方法

关闭虚拟机

  1. 单击设置 > 网络单击适配器 1 并选择桥接适配器
  2. 单击适配器 2 并选择仅主机适配器
  3. 如果没有看到 NAT 网络,请单击文件 > 首选项 > NAT 网络下的网络,单击 + 图标以添加 NAT 网络。
  4. 如果您没有看到仅主机网络,请单击 Host-Only Networks 单击 + 图标添加一个

启动虚拟机

  1. 要查看网络适配器,您需要键入

    ifconfig -a
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可能会看到网络适配器添加了 mac 地址而不是 IP?

  3. 如果是这样,那么您需要编辑 /etc/network/interfaces 以配置 DHCP。下面的示例使用 VI/VIM,但您可以使用您选择的编辑器

    sudo vi /etc/network/interfaces
    
    Run Code Online (Sandbox Code Playgroud)
  4. 添加行

    auto eth1
    iface eth1 inet dhcp
    
    Run Code Online (Sandbox Code Playgroud)
  5. 保存并退出文件。
  6. 然后尝试使用以下命令重新启动网络服务

    sudo service networking restart
    
    Run Code Online (Sandbox Code Playgroud)
  7. 或者,如果失败,则重新启动 VM。
  8. 重新启动后在下面键入以查看您的 eth1 是否已分配 IP 地址

    ifconfig -a
    
    Run Code Online (Sandbox Code Playgroud)
  9. 如果是,那么看看您是否可以通过 SSH 连接到 VM


小智 15

以下说明适用于 Ubuntu 14.04 和 Oracle VirtualBox 4.3.30。

在 VirtualBox 中执行此操作:

  1. 右键单击您的虚拟机,选择“设置”,然后选择“网络”。

  2. 在“附加到”旁边,选择“仅主机适配器”。附带说明一下,“桥接适配器”也可以使用,请查看 VirtualBox 文档以了解有关每个选项的更多详细信息。

在您的虚拟机中执行此操作:

  1. 通过打开终端并键入 来查找您的网络 IP 地址ifconfig。观察 eth0 旁边显示的 IP 地址,在“inet addr”下。如果您单击桌面右上角的网络图标,然后选择“连接信息”,您还可以看到您的 IP 地址。

  2. 通过在终端输入以下内容来安装 openssh-server:

    sudo apt-get install openssh-server
    
    Run Code Online (Sandbox Code Playgroud)
  3. 以防万一,重启虚拟机。

现在,您可以使用上述步骤 1 中的 IP 地址和端口 22 从 PuTTY 进行连接。


ook*_*osi 6

对于 Ubuntu 18.04 和 VirtualBox 5.2:

  1. 创建主机网络接口

    一世。在 Virtualbox 上,单击File/ Host Network Manager

    ii. 如果您还没有主机网络适配器(默认vboxnet0),请单击Create

  2. 为 VM 启用仅主机适配器设置

    一世。在 Virtualbox 上,右键单击您的 VM 并选择Settings

    ii. 单击Network并选择Adapter 2

    三、单击Enable Network Adapter

    四、在Attached to:选择下Host-only Adapter。您在步骤 1 中创建的适配器的名称应该会出现(默认vboxnet0)。

  3. 在 VM 中配置网络设置

    一世。启动您的 VM 并检查添加了哪个接口:ip a. 寻找没有inet地址的接口。在我的,它是enp0s8

    ii. 编辑/etc/netplan/01-netcfg.yaml。例如sudo vi /etc/netplan/01-netcfg.yaml

    三、在原始适配器的设置下,添加配置详细信息:

    enp0s8:
        addresses: [192.168.56.2/24]
        gateway4: 192.168.56.1
        dhcp4: no
    
    Run Code Online (Sandbox Code Playgroud)

    这会为您的 VM 分配一个静态 IP 地址,以方便 SSH。如果您想dhcp改为处理寻址,请忽略地址和网关配置并设置dhcp4yes.

    四、重新加载配置文件:sudo netplan apply.

  4. 通过 SSH 连接到您的 VM

    一世。如果您尚未ssh在 VM 中安装:sudo apt install ssh.

    ii. 从您的主机,通过 SSH 连接到 VM:ssh <username>@192.168.56.2.