总体而言,我对网络知识完全是初学者。我曾尝试在 Network Engineering Stack Exchange 上发布此内容,但他们将我发到了这里。我的主要目标是能够模拟一个设备,以便我可以从 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
从终端,我可以通过 telnet 顺利进入它:
telnet 127.0.0.1 5001
但是当我跑步时:
ssh [email protected] -p 5001
终端挂起,R1 控制台输出以下内容:
我究竟做错了什么?
答案1
您无法使用 SSH 连接到,localhost:5001
因为 上没有运行 SSH 服务器localhost:5001
。正如 GNS3 所告诉您的,那里正在运行 Telnet 服务器,而不是 SSH。因此,您需要使用 Telnet 进行连接。
您似乎认为这localhost:5001
是某种神奇的端口转发,并且 GNS3 足够聪明,能够发现您在交换机的端口 22 上配置了一个 SSH 服务器,它会神奇地将其 NAT 到主机上的端口 5001。但请考虑一下:GNS3 如何知道您在交换机上运行了一个 SSH 服务器,并且您想要连接到它,而不是 HTTP 服务器?
localhost:5001
GNS3 可以让你访问终端交换机。如果您想在交换机上运行任何类型的服务并通过网络连接它们,您需要设置适当的网络,以便您可以连接到虚拟交换机的管理 IP。