如何通过直接以太网连接通过 SSH 连接到设备

如何通过直接以太网连接通过 SSH 连接到设备

我有一个需要通过 SSH 连接的设备。该设备通过直接以太网连接连接到我的工作站。我试图以某种方式为连接的设备分配一个可以通过 SSH 访问的 IP 地址,但是我找到的所有指南都要求用户从他们正在使用的任何设备(即 Raspberry Pi 等)配置 IP 。这不是我可以用这个设备做的事情,因为我没有可以使用的物理接口。

有人建议我在我的工作站上设置一个 DHCP 服务器,这样它就会帮我处理这个问题,但是我不知道如何配置它,而且我遵循的指南都没有帮助。通过这种方法,我似乎能够将 IP 绑定到设备连接的接口,但是 SSH 到该 IP 只会让我回到我自己的机器。

所以我的主要问题是:如何为通过以太网电缆直接连接到我的计算机的设备分配 IP 地址,而无需对设备进行任何类型的访问(没有接口、键盘、显示器等)。如果答案是在我的计算机上设置 DHCP 服务器,我该如何正确配置它并获取可以通过 SSH 访问的 IP?

作为参考,我使用的是安装了 OpenSSH 的 Ubuntu 16.04。该设备还运行某种风格的 Linux,并安装了 SSH 软件,但除了通过 SSH 之外,无法与其交互。我也无法访问我的路由器,因此将设备插入其中并让路由器完成工作不是一个选择。

答案1

关联@steve 给出的评论是合适的,但如果你想先尝试一些简单的东西,看看设备能做什么,你可以使用dnsmasq,这是一个简单的 dns 和 dhcp 服务器。安装与sudo apt-get install dnsmasq.如果这也启用和启动服务器,您需要停止并禁用它。

比如说,如果您的设备位于以太网接口上eth2,并且您已经sudo ifconfig eth2 192.168.9.1设置了接口 IP 地址,那么您可以尝试:

sudo dnsmasq -d -C /dev/null --port=0 --domain=localdomain --interface=eth2 --dhcp-range=192.168.9.2,192.168.9.10,99h

它以调试模式(-d)设置 dhcp 服务器,而不是作为守护进程,其中 dns(端口 = 0)能够提供 0.2 到 0.10 范围内的地址,并保留相同的地址 99 小时。

如果您的设备广播发现地址的请求,您应该会看到它以及回复(报价):

dnsmasq-dhcp: DHCPDISCOVER(eth2) 94:71:ac:ff:85:9d 
dnsmasq-dhcp: DHCPOFFER(eth2) 192.168.9.2 94:71:ac:ff:85:9d 

这些数字是分配的 IP 地址和设备的 MAC 地址。如果设备已放弃广播,您可能需要重置或打开设备电源。设备可能会回复ping 192.168.9.2,然后您也可以尝试 ssh。一旦此测试中提供了地址,您就可以中断 dnsmasq,并将选项放入标准 dnsmasq 配置文件中,依此类推。

您还可以有效地运行sudo tcpdump -i eth2以查看哪些数据包通过。

相关内容