我尝试在两个虚拟机之间建立 ssh 连接。因此,我使用 Oracle VirtualBox 4.3.36 在 Ubuntu-Gnome-14.04 主机上安装了两个带有 Ubuntu-Gnome-16.04 客户机的虚拟机。
我将两个虚拟机都设置为适配器 1 上的同一个内部网络。另外,我将每个客户机上的 IPv4 地址设置为静态地址:
地址:任务 a 上的 192.168.44.10 和任务 b 上的 192.168.44.11
网络掩码:255.255.255.0
网关:192.168.44.44
DNS 服务器:192.168.44.22
然后我可以在虚拟机之间进行 ping 操作:
usr@vb-a:~$ ping 192.168.44.11 -c4
PING 192.168.44.11 (192.168.44.11) 56(84) bytes of data.
64 bytes from 192.168.44.11: icmp_seq=1 ttl=64 time=0.155 ms
64 bytes from 192.168.44.11: icmp_seq=2 ttl=64 time=0.316 ms
64 bytes from 192.168.44.11: icmp_seq=3 ttl=64 time=0.308 ms
64 bytes from 192.168.44.11: icmp_seq=4 ttl=64 time=0.319 ms
--- 192.168.44.11 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.155/0.274/0.319/0.071 ms
另一个虚拟机:
usr@vb-b:~$ ping 192.168.44.10 -c4
PING 192.168.44.10 (192.168.44.10) 56(84) bytes of data.
64 bytes from 192.168.44.10: icmp_seq=1 ttl=64 time=0.429 ms
64 bytes from 192.168.44.10: icmp_seq=2 ttl=64 time=0.308 ms
64 bytes from 192.168.44.10: icmp_seq=3 ttl=64 time=0.297 ms
64 bytes from 192.168.44.10: icmp_seq=4 ttl=64 time=0.243 ms
--- 192.168.44.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.243/0.319/0.429/0.069 ms
但是当我尝试打开 ssh 连接时收到以下消息:
usr@vb-a:~$ ssh [email protected]
ssh: connect to host 192.168.44.11 port 22: Connection refused
我开始进行故障排除,并检查主机和客户机上的 ufw 状态是否处于非活动状态,因为防火墙可能阻止了这个端口。但 ufw 并未处于活动状态。
问题出在哪里?
提前致谢。
亚历克斯
答案1
有几个问题需要你去探索。首先,你安装了 openssh-server 吗?如果没有,那么
$ sudo apt-get install openssh-server
通常,当您安装 openssh-server 时,UFW 会被修改为允许端口 22 传入连接。您可以通过执行以下操作来检查是否允许端口 22 传入:
$ sudo ufw status
否则,
$ sudo ufw allow 22
其次,您尝试通过 root 用户登录。ubuntu 上的默认配置没有 root 用户的密码。如果您确实想设置 root 密码(不推荐):$ sudo passwd
默认情况下,Ubuntu 系统上的 /etc/ssh/sshd_config 中的 PermitRootLogin 设置为 No。编辑该文件并将 PermitRootLogin 更改为 Yes,保存文件并重新启动服务以使更改生效。
$ sudo gedit /etc/ssh/sshd_config
$ sudo service ssh restart
答案2
安装后,firewall-config
我查看了 ssh 服务的基本设置,发现了以下内容:
安全 Shell (SSH) 是一种用于登录远程计算机并在远程计算机上执行命令的协议。它提供安全加密通信。如果您计划通过防火墙接口通过 SSH 远程访问您的计算机,请启用此选项。您需要安装 openssh-server 软件包才能使用此选项。
openssh-server
以下是需要安装软件包的信息。在客户机上完成此操作并重新启动虚拟机后,我可以使用 ssh。
答案3
我所做的是 1. 保持默认 NAT 适配器原样 2. 创建仅主机适配器,同样使用“拒绝” 3. 最后但并非最不重要的是,安装 openssh-server 和 sudo ufw allow 22
有点遵循上面讨论的内容