SSH経由で接続する必要があるデバイスがあります。デバイスは、直接イーサネット接続を介してワークステーションに接続されています。 SSHで接続できるデバイスに何らかの方法でIPアドレスを割り当てようとしていますが、すべてのガイドでは、ユーザーが使用しているデバイス(つまり、Raspberry Piなど)からIPを構成しています。 。物理的なインターフェースがないので、これはこのデバイスでできることではありません。
私のワークステーションでDHCPサーバーをセットアップすることをお勧めします。これで問題が解決しますが、それを構成する方法がわからず、従ったガイドも役に立ちませんでした。そのアプローチでは、デバイスが接続されているインターフェイスにIPをバインドできたようですが、そのIPにSSHで接続すると、自分のマシンに戻るだけです。
したがって、私の主な質問は次のとおりです。デバイスになんらかのアクセス(インターフェイス、キーボード、モニターなど)なしで、イーサネットケーブル経由でコンピューターに直接接続されているデバイスにIPアドレスを割り当てるにはどうすればよいですか。答えが自分のマシンにDHCPサーバーをセットアップすることである場合、これを適切に構成し、SSHできるIPを取得するにはどうすればよいですか?
参考までに、OpenSSHがインストールされたUbuntu 16.04を使用しています。このデバイスは、Linuxの一部のフレーバーも実行しており、SSHソフトウェアがインストールされていますが、SSHを使用しない限り、デバイスと対話する方法はありません。また、ルーターにアクセスできないため、デバイスをそこに接続してルーターに機能を任せることはできません。
@steveによって与えられたリンクは適切ですが、デバイスが何をしているのかを確認するためだけに最初に簡単なことを試したい場合は、単純なDNSおよびDHCPサーバーであるdnsmasq
を使用できます。 Sudo apt-get install dnsmasq
でインストールします。これもサーバーを有効にして起動する場合は、サーバーを停止して無効にする必要があります。
たとえば、デバイスがイーサネットインターフェースeth2
上にあり、インターフェースIPアドレスを設定するためにSudo ifconfig eth2 192.168.9.1
を実行した場合は、次のことを試すことができます。
Sudo dnsmasq -d -C /dev/null --port=0 --domain=localdomain --interface=eth2 --dhcp-range=192.168.9.2,192.168.9.10,99h
これは、dhcpサーバーをデーモンとしてではなく、デバッグモード(-d)でセットアップし、dns(port = 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
を実行すると、通過するパケットを確認できます。
だから私はこれが遅いことを知っていますが、あなたの場合と、sshをRaspberry Piのようなデバイスに接続したい他の多くの小さなクリエイターの場合、追加のハードウェアを必要としない合理的な安全で簡単な方法があります(sshを除いて)ノードハードウェア(raspberri piなど)、イーサネットケーブル、およびsshクライアント(他のコンピューターの可能性が最も高い)。
また、将来の障害や障害になる可能性のあるものを設定したり構成したりする必要もありません。
つまり、IPアドレスの代わりにsshサーバーのMACアドレスを使用します。MACアドレスは、ハードウェアイーサネット(wifiカード)に固有のハードウェア(ソフトウェアではなく)の一種のIPアドレスと見なすことができます。非静的IPアドレスとは異なり、Macアドレスは変更されません。
私はこれをパインA64 +で行いましたが、この例ではRaspberry Pi(pi)と呼びます。これらはより使用されるため(どちらも同じように機能します)、最初にsshがpiのOSで有効になっていることを確認してください。ここに来る人はそれをインストールします。
次に、ケーブルをPCに接続してpiをオンにします(測定を開始したことがない限り、少し時間がかかるので、piをイーサネットケーブルに接続しないでください)。
他の1つの起動Wiresharkを制御するクライアントPCで、インストールされていない場合は、基本的にすべての市長およびあまり知られていないがまだ知られているオペレーティングシステムでサポートされているため、簡単にダウンロードしてインストールできます。
イーサネット信号をキャプチャするように選択します(複数ある場合は右の信号)。文字通り、キャプチャオプションや起動画面でもイーサネットを確認できます。
次に、イーサネットケーブルをpiに接続するか、すでに接続されている場合は切断して再接続します。
今、あなたは多くのデータを取得しますが、パイを接続する前には見られなかった2つのMACアドレスが表示される可能性が高く、それらのMACアドレスはソース行に表示され、それらの最初の数秒後に大量にスパムしますあなたはパイを接続します。
sshコマンドまたはプログラムで、IPの代わりに2つのMACアドレスを試し、ポートを変更しない限り、デフォルトのポート20を使用します。 2つのうちの1つは接続を拒否し(ほとんどの場合)、もう1つは接続し、1つはpiになり、sshに直接ログインできるようになります。
いくつかの作業を保存するには、piのMACアドレスをテキストドキュメントにコピーして貼り付ける必要があります。手動で変更またはスプーフィングしない限り、Macアドレスは変更されません。両方のMACアドレスがsshを許可している場合、両方にログインし、基本的なコマンドまたはそれらのフィードバックだけを使用して、OS、ファイルシステム、名前などに基づいて正しいものであるかどうかを判断できます。ただし、sshサーバーがない限り、これは起こりません両方のデバイスで実行されています。
wiresharkが気に入らない場合より、制御するデバイスでifconfigを使用してデバイスのMACアドレスを見つけることもできます(しばらくの間、デバイスに入力とモニターが必要になります。また、コントローラPCが接続されていない場合や接続されている場合は、コントローラPCのARPテーブルを調べてみてください。