当前位置: 首页>>技术教程>>正文


尝试使用Putty SSH到本地VM Ubuntu

, ,

问题描述

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

我还尝试将”127.0.0.1″放入Putty中的主机名中,并仅获得”Connection Refused”。请注意,我已经在Oracle VM中完成了SSH和HTTP的端口转发,因此我对如何使其运行感到困惑。

最佳解决方法

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

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

这样,您可以将腻子指向127.0.1.1的端口22,VirtualBox会将此连接重定向到您的VM,在此ssh守护程序将在该VM应答它,并允许您登录。

次佳解决方法

我想用腻子在虚拟盒子上连接到我的ubuntu(出于舒适原因,VB太奇怪了。除非它在正确的终端上,否则我将无法工作)。无论如何,

  1. 确保Linux上已安装ssh客户端。如果没有安装,请安装sudo apt install ssh

  2. 关闭操作系统电源。

  3. 现在在您的VB上转到Adapter 1上的Settings -> Network ->-选择Host-only adapter->单击OK

  4. 现在启动您的操作系统。运行ifconfig;现在,inet地址就是您的IP。

  5. 使用它并在腻子上运行它。使用您的凭据登录。

使用host-only适配器的唯一缺点是您的来宾OS无法访问更广泛的网络(例如Internet)。

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

第三种解决方法

首先,您需要确定您的VM是通过网桥连接还是通过NAT连接到主机,但是以太方式,您需要将VM IP地址放入腻子才能连接到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

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

首先尝试确保您可以与VM进行基本通信,打开主机上的终端窗口,然后尝试ping VM

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

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

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd

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

您可以通过尝试从自身的VM SSH到服务来测试服务是否正常运行,

VM # ssh 127.0.0.1

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

VM # iptables -nvL INPUT

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

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW

第四种方法

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

如果我尝试了“仅主机适配器”,那将允许我使用SSH进行计算机连接,但无法访问Internet。

我也尝试了端口转发,没有任何乐趣。打开Wireshark并没有找到VM。

因此,我的解决方案是添加第二个网络适配器。

Method

关闭虚拟机电源

  1. 点击设置>网络单击适配器1,然后选择桥接适配器。

  2. 单击适配器2,然后选择仅主机适配器

  3. 点击文件>偏好设置>网络在“ NAT网络”下,如果您没有看到NAT网络,请单击+图标以添加NAT网络。

  4. 如果看不到仅主机的网络,请单击Host-Only网络。单击+图标以添加一个。

启动虚拟机

  1. 为了查看网络适配器,您需要输入

    ifconfig -a
    
  2. 您可能会看到网络适配器添加了mac地址,但没有IP?

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

    sudo vi /etc/network/interfaces
    
  4. 添加行

    auto eth1
    iface eth1 inet dhcp
    
  5. 保存并退出文件。

  6. 然后尝试使用以下命令重新启动网络服务

    sudo service networking restart
    
  7. 或者,如果失败,则重新启动VM。

  8. 重新启动后,在下面键入以下内容以查看是否已为eth1分配IP地址

    ifconfig -a
    
  9. 如果是这样,那么看看是否可以通过SSH到虚拟机

第五种方法

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

在VirtualBox中执行以下操作:

  1. Right-click您的虚拟机,选择”Settings”,然后选择”Network”。

  2. 在“ “Attached to””旁边,选择“ Host-only适配器”。附带说明,”Bridged Adapter”也可以使用,请查看VirtualBox文档以获取有关每个选项的更多详细信息。

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

  1. 通过打开终端并键入ifconfig来找到您的网络IP地址。观察”inet addr”下eth0旁边显示的IP地址。如果您单击桌面upper-right角中的“网络”图标,然后选择”Connection Information”,您也可以看到IP地址。

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

    sudo apt-get install openssh-server
    
  3. 以防万一,请重新启动虚拟机。

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7558.html,未经允许,请勿转载。