buildrootでビルドされた組み込みLinuxから起動した後、sshdが起動しませんか?

buildrootでビルドされた組み込みLinuxから起動した後、sshdが起動しませんか?

buildrootのデフォルト設定を使用してRaspberry Piの最小インストールを実行しました。また、menuconfigでopensshとopensslを選択しました。

Package Selection for the target  --->
    [*] Networking  --->
        [*]   openssh
    [*] Library -->
        Crypto -->
            -*-   openssl
            [*]      openssl binary
            [ ]      openssl additional engines

Piを割り当てましたが、192.168.0.14SSH経由で接続できません。 nmapは、Piのすべてのポートがダウンしていることを示し、時にはPiがまったく表示されないことがあります。変だと思います。 nmapがスキャンするたびにLINK LEDが点滅するため、正しく接続されているようです。

update-rc.d私は通常ブートサービスを使用または管理しますsystemctlが、SSHを介してのみPiに接続できます。 HDMIまたはシリアルポートはありません。手動で設定する方法はよくわかりません。/etc/init.d/S50sshdPiに存在するので、起動後にsshを起動する必要があります。そうですか?

関連構成ファイル:/etc/ssh/sshd_config/etc/init.d/S50sshd

SDカードに関連ログが見つかりません。

編集する:

X Tianのコメント提案に基づいてログを取得しました。唯一の録音は/var/log/messages。関連部品:

Jan  1 00:00:02 buildroot auth.info sshd[75]: Server listening on 0.0.0.0 port 22.

sshdが始まるようです。問題は他にあるようです。

root@pc:~# ssh 192.168.0.14
ssh: connect to host 192.168.0.14 port 22: Connection refused
root@pc:~# ping 192.168.0.14
PING 192.168.0.14 (192.168.0.14) 56(84) bytes of data.
64 bytes from 192.168.0.14: icmp_seq=1 ttl=64 time=32.8 ms
64 bytes from 192.168.0.14: icmp_seq=2 ttl=64 time=55.6 ms
64 bytes from 192.168.0.14: icmp_seq=3 ttl=64 time=79.1 ms
^C
--- 192.168.0.14 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 32.808/55.871/79.140/18.917 ms
root@pc:~# exit
debian@pc:~ nmap -F 192.168.0.14
Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-30 03:25 BRT

Nmap scan report for 192.168.0.14
Host is up (0.085s latency).
All 100 scanned ports on 192.168.0.14 are closed

興味深いことに、PiをオフにしてEthernetケーブルを外した後も、そのアドレスにpingを送信できました。今私は本当に迷子になりました。ただ圧縮してアップロードするのが良いと思います。/以下のすべてのファイルどこを見るべきかを知っている人がいる場合(ここは本番環境ではなく、パスワードと秘密鍵は使用されず、テスト目的で設定されます)

答え1

sshd_config では、空のパスワードを使用して root としてログインすることはできず、root アカウントにパスワードが設定されていません。

ssh_configの変更

#PermitEmptyPasswords no

到着

PermitEmptyPasswords yes

ログからより多くの情報を取得するには、SSHのロギングレベルを上げてください。

~から

#LogLevel INFO

到着

LogLevel DEBUG

sshd ログレベルの変更に関する追加情報この回答

答え2

分析では、次のように言われました。

Piをシャットダウンしてイーサネットケーブルを外した後も、そのアドレスにpingを送信できました。

IPが重複する症状です。つまり、同じIPアドレスを持つ2つ以上のデバイスがあります。

次の 2 つの方法を使用して、デバイスの MAC アドレスを確認する必要があります。

デバイスで次の操作を行い、ifconfigフィールドを確認しますHWaddr

root@rpi# ifconfig
eth0      Link encap:Ethernet  HWaddr B8:27:EB:BE:1C:67  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0

リモートコンピュータでarp -a <device IPaddr>適切なフィールドを実行して確認しますether

jml@pc$ arp -a 192.168.1.11
? (192.168.1.11) at b8:27:eb:be:1c:67 [ether] on eth0

私の例では、両方のMACアドレスは同じです。そうでない場合は、ネットワークのすべてのIPアドレスを確認する必要があります(固定)。そして動的)。

ほとんどの場合、この問題は、他の固定アドレスで使用されるDHCPサーバーの誤った構成が原因で発生します。たとえば、DHCP サーバーに192.168.1.10次の間にプールがある192.168.1.20場合必然ではないこの範囲内に異なる固定アドレスがあります。

Piの質問に戻ります。 DHCPスコープに属さない新しいIPアドレスを割り当ててみてください。または、固定アドレスにさらに多くのスペースを確保するように DHCP サーバーを再構成します。

答え3

/etc/init.d/S50sshdがPiに存在するため、起動後にsshを起動する必要があります。そうではありませんか?

完全なものではなく。その/etc/init.d/S50sshdファイルはすでに使用されており、そのランレベルフォルダにあるファイルが呼び出されます。実行すると、update-rc.d必要なフォルダのinit.dにS50sshdへのシンボリックリンクが作成されます/etc/rc?.d/

以下を使用して現在の状態を確認できます。

ls etc/rc*.d/*ssh*

(ランレベル2、3、4、5に表示したい)

以下を使用して作成します。

ln -s /etc/init.d/ssh /etc/rc2.d
ln -s /etc/init.d/ssh /etc/rc3.d
ln -s /etc/init.d/ssh /etc/rc4.d
ln -s /etc/init.d/ssh /etc/rc5.d

答え4

ルートを構築するときにもこの問題が発生しました。 etc/init.d/S50sshdにもかかわらず、/var/empty権限のためにsshdがまだ起動していないことがわかりました(ヒントはコンソール印刷を詳しく見ています)。

Starting sshd: /var/empty must be owned by root and not group or world-writable.

# ls -l /var/                                                                                                                                                                                               
total 0                                                                                                                                                                                                     
..                                                                                                                                 
drwxr-xr-x    2 sshd     sshd            40 Jan  1 00:09 empty  

私の解決策はそれを削除して再作成することでした(私はすでにルートです)

# ls -l /var/                                                                                                                                                                                               
total 0                                                                                                                                                                                                     
..                                                                                                                                 
drwxr-xr-x    2 root     root            40 Jan  1 00:09 empty  

その後、sshdを手動で起動します。

関連情報