尝试从 Linux 终端进行 SSH 时,路由器输出“错误的 IP 地址或主机名”

Gab*_*iel 2 networking linux ssh virtual-network gns3

总的来说,我是网络知识的初学者。尝试将其发布在网络工程堆栈交换中,但他们将我发送到这里。我的主要目标是能够模拟设备,以便我可以从 Python 应用程序通过 SSH 连接到该设备并获取命令的输出。但首先,我尝试从终端手动通过 SSH 连接到设备。

我使用 GNS3 来模拟网络和 CISCO C7200 图像。我正在使用 Manjaro Linux。我的拓扑:

在此输入图像描述

路由器配置:

conf t
hostname R1
ip domain-name local
crypto key generate rsa
ip ssh version 2
line vty 0 4
transport input ssh
login local
exit
username admin password 1234
exit
Run Code Online (Sandbox Code Playgroud)

从终端,我可以远程登录到它,运行良好:

telnet 127.0.0.1 5001

但是当我跑步时:

ssh admin@127.0.0.1 -p 5001

终端挂起并且 R1 控制台输出以下内容:

在此输入图像描述

我究竟做错了什么?

Jör*_*tag 5

您无法使用 SSH 连接localhost:5001,因为 上没有运行 SSH 服务器localhost:5001。正如 GNS3 告诉您的那样,那里运行的是 Telnet 服务器,而不是 SSH。因此,您需要使用 Telnet 进行连接。

您似乎认为这localhost:5001是某种神奇的端口转发,并且 GNS3 足够聪明,能够发现您在交换机的端口 22 上配置了 SSH 服务器,它会神奇地将其 NAT 到主机上的端口 5001。但请考虑一下:GNS3 如何知道交换机上正在运行 SSH 服务器并且您想要连接到它,而不是 HTTP 服务器?

localhost:5001是 GNS3 让您访问交换机终端的方式。如果您想在交换机上运行任何类型的服务并通过网络连接到它们,则需要设置适当的网络,以便可以连接到虚拟交换机的管理 IP。