无法 ssh 到 ubuntu vm(不是本地主机)

无法 ssh 到 ubuntu vm(不是本地主机)

我正在尝试连接到运行 Ubuntu 的虚拟机。我找出了它的 IP 地址以及主机的 IP 地址,并通过 VirtualBox 管理器将其输入到网络设置中,如下所示:

在此处输入图片描述

此处的主机 IP 是运行 VM 的计算机的 IP,而客户 IP 是 VM 的 IP(使用 ip a 命令找到)。端口 22 是 ssh 的默认端口,因此我保留了原样。

我已经安装了 openssh-server,它根据以下命令显示其处于活动状态并正在运行:

sudo systemctl status ssh

此外,我还运行了以下命令:

sudo sysctl net.ipv4.ip_forward=1

启用端口转发并:

iptables -t nat -A PREROUTING -p tcp -d [PUBLIC_IP] --dport 22 -j DNAT --to-destination 10.0.2.15:22

iptables -t nat -A POSTROUTING ! -s [PUBLIC_IP] -j MASQUERADE

这是我在另一篇文章中发现的。

我已经做了所有我能找到和想到的方法,但是由于某种原因,当我从笔记本电脑运行以下命令(均不起作用)来连接到虚拟机时:

ssh matt@[PUBLIC_IP]

ssh -p 22 matt@[PUBLIC_IP]

ssh [email protected]

我总是得到同样的错误:

ssh: connect to host [PUBLIC_IP] port 22: Connection timed out

我重启了两台电脑,但还是不行。我对 Linux 完全陌生,我想在课堂上通过 ssh 连接到我的家庭服务器来访问笔记,继续玩耍和学习。

任何帮助都将非常有帮助!

以下是命令的输出:“ssh matt@[HOST_PUBLIC_IP] -VV”:

在此处输入图片描述

答案1

通过 ssh 连接到另一个节点(服务器)的基本方法要求您在远程节点上创建一个私钥。在您的情况下,您尚未将该密钥传递给ssh command

连接远程机器的步骤如下:

  1. 使用该工具在远程节点(服务器/机器)上创建公共和私有ssh-keygen

  2. 将私钥下载到另一个节点(服务器/机器)

  3. 制作钥匙所有者只读通过命令:

    • chmod 400 <path/to/private_key>
  4. 使用您的私钥ssh command

    • ssh -i <path/to/private_key> <username>@<remote_node_ip_address>

相关内容