Raspberry Piのbuildrootのデフォルト設定を使用して最小インストールを実行しました。また、opensshとopensslをmenuconfigから選択しました。
Package Selection for the target --->
[*] Networking --->
[*] openssh
[*] Library -->
Crypto -->
-*- openssl
[*] openssl binary
[ ] openssl additional engines
Piを192.168.0.14
に割り当てましたが、SSHできませんでした。 nmapはPiのすべてのポートが閉じていることを示し、Piをまったく表示しないこともあります。これは奇妙なことに、nmapがスキャンするたびにLINK LEDが点滅するので、正常に接続されていると思います。
通常、スタートアップサービスはupdate-rc.d
またはsystemctl
を使用して管理しますが、SSH経由でのみPiに接続できます。HDMIポートもシリアルポートもありません。手動で設定する方法がわかりません。 /etc/init.d/S50sshd
はPiに存在するので、ブート後に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をシャットダウンしてイーサネットケーブルを取り外した後も、そのアドレスにpingを送信できたということです。今、私は本当に迷っています。 tarしてアップロードするのが最善だと思いました /の下のすべてのファイル 誰かがどこを見ればよいか知っている場合(これは本番環境ではなく、パスワードと秘密鍵は使用されておらず、設定されています)テスト目的のため)。
あなたの分析では:
Piをシャットダウンしてイーサネットケーブルを切断した後も、そのアドレスにpingを実行できました
これは重複IP症状です。つまり、同じIPアドレスを持つ2つ(またはそれ以上)のデバイスがあります。
次の2つの方法を使用して、デバイスのMACアドレスを確認する必要があります。
デバイスの1つで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
リモートコンピューターの1つで、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サーバーを再構成して、静的アドレス用のスペースを増やします。
Sshd_configは、rootとしてログインしている空のパスワードを許可しておらず、rootアカウントにはパスワードが設定されていません。
ssh_configを変更する
#PermitEmptyPasswords no
に
PermitEmptyPasswords yes
ログの詳細情報を取得するには、sshのログレベルを上げてみてください
から
#LogLevel INFO
に
LogLevel DEBUG
この答え でsshdログレベルの変更についてさらに読んでください。
/etc/init.d/S50sshdはPiに存在するので、ブート後にsshを開始する必要がありますね。
ではない正確に。 /etc/init.d/S50sshd
ファイルが使用されますが、呼び出されるのは適切なランレベルフォルダーからのファイルです。 update-rc.d
を実行すると、必要な/etc/rc?.d/
フォルダーにinit.dのS50sshdへのシンボリックリンクが作成されます。
現在のステータスは次の方法で表示できます。
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
Buildrootでもこの問題が発生しました。/var/empty権限が原因で、etc/init.d/S50sshdにもかかわらず、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を手動で起動します。
ルーターなし+通常のイーサネットケーブル+ RPI 2 + Buildroot 2016.05 + Ubuntu 16.04 Host
この問題を2つの部分に分けた後、うまくいきました。
raspbianで動作するイーサネットSSHと直接ケーブル接続(すでに適切に設定されたsshdデーモンが既に実行されている)を取得 https://raspberrypi.stackexchange.com/a/54394/33424
qEMU + buildrootで適切なsshd構成を行う方法を学ぶ: https://stackoverflow.com/a/39301480/895245
実際のボードでは、もちろん/etc/ssh/sshd_config
を変更するためのQEMUウィンドウがないため、次のいずれかを行う必要があります。
BR2_ROOTFS_OVERLAY
、output/images/sdcard.img
を https://askubuntu.com/a/496576/52975 でマウント、またはoutput/target
でプレイ).config
は、単にraspberrypi2_defconfig
を有効にしたmake menuconfig
+ openssh
です。
次にちょうど:
ssh "root@$(cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3)"
画像のTTLのみが電力に使用されます。