Linux

如何通過直接乙太網連接通過 SSH 連接到設備

  • May 18, 2021

我有一個需要通過 SSH 連接的設備。該設備通過直接乙太網連接連接到我的工作站。我正在嘗試以某種方式為連接的設備分配一個我可以通過 SSH 訪問的 IP 地址,但是我發現的所有指南都讓使用者從他們正在使用的任何設備(即 Raspberry Pi 等)配置 IP . 這不是我可以用這個設備做的事情,因為我沒有物理介面可以使用。

有人建議我在我的工作站上設置一個 DHCP 伺服器,這樣它就會為我解決這個問題,但是我不知道如何配置它,而且我遵循的指南都沒有幫助。通過這種方法,我似乎能夠將 IP 綁定到設備所連接的介面,但是通過 SSH 連接到該 IP 只會讓我回到我自己的機器上。

所以我的主要問題是:如何為通過乙太網電纜直接連接到我的電腦的設備分配 IP 地址,而無需對設備進行任何訪問(沒有介面、鍵盤、顯示器等)。如果答案是在我的機器上設置 DHCP 伺服器,我該如何正確配置它並獲得可以通過 SSH 訪問的 IP?

作為參考,我使用的是安裝了 OpenSSH 的 Ubuntu 16.04。該設備還執行某種 Linux 風格並安裝了 SSH 軟體,但除了通過 SSH 之外,沒有其他方法可以與之互動。我也無法訪問我的路由器,因此將設備插入那裡並讓路由器完成工作不是一種選擇。

@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 (port=0) 能夠提供 0.2 到 .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以查看哪些數據包通過。

引用自:https://unix.stackexchange.com/questions/295238