購入
秋月電子にて3500円くらい
イメージダウンロード
ArmbianGeneral purposeNanopi Neo and Core イメージダウンロード
xzでダウンロードします。
ダウンロードリンクボタンが下の方にあって分かりづらかったです。
イメージインストール
マイクロSDカードへの書き込みはRaspberry Pi Imagerが使えます。
OSはダウンロードしてきたxzを選択して、マイクロSDは差し込んだものを選択します。
歯車アイコンでIDとかパスワードとか設定しようとしましたが、raspbian OSのときのようには設定してくれませんでした。「設定できませんでいた」というエラーウィンドウが出ますが、無視してSDカード抜きます。
ハードウェアの接続
NanoPiに対して下記を接続します。
- 書き込みしたマイクロSDカードを差し込みます。
- ルータへ接続されたLANケーブルを接続します。
- 5V給電マイクロUSB type Bケーブルを接続します。
USBケーブルを挿入した時点で勝手に電源が入ります。
ssh接続
ホストPC側からsshで接続します。まずはNanoPiのIPアドレスを調べます。
私はUbuntu22.04を使っていますのでarp-scan
でLAN内の機器のIP情報を調べることができます。
$ sudo apt install arp-scan
$ sudo arp-scan --localnet
として新たに接続されたNanoPiのIPアドレスを調べます。
Interface: eno1, type: EN10MB, MAC: 2c:9d:92:33:24:66, IPv4: 192.168.10.107
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.10.1 02:10:82:91:55:96 (Unknown)
...
192.168.10.113 04:41:42:a3:a2:ea (Unknown: locally administered)
...
新しめの番号が出てきたので、特定。
$ watch -n3 sudo arp-scan --localnet
とすると、接続の瞬間にハイライトされるのでわかりやすいかもしれません。
初回sshログイン
arp-scan
で見つけたIPアドレスを使用して、root@IPアドレス
でログインします。初期パスワードは1234
で固定です。
$ ssh root@192.168.10.113
# パスワードは`1234`
参考に見ていたページではUSBシリアル変換がないと接続できないみたいなことが書いてあったので、ダメ元でやってみましたが、問題なくssh接続することができました。
これでDHCPでLANから見えるんでしょ?
と思ったらLAN上にそれらしきホストが確認できず。。
arp -a とやっても知ってるマシンしか出てこない。。
起動失敗したかな、、?
(後で分かりますが、結果的にはこの時点で起動できてました。起動はできていましたが、この時点ではLANには繋がっていなかったようです)
何となくの「いけるだろ」って感じであまり調べずに買っちゃったってこともあるんだけど、たまたまUSBシリアルモジュール持ってたからなんとかなったものの、持ってなかったらもうちょっとハマってたな、これ。
HDMI出力がないので、OSのセットアップには USBシリアル のモジュールを使用します。
Nano Pi NEO 自宅サーバを再インストールしました
NanoPi NEO に Armbian をインストールしようとしてつまづいた話
初回設定
sshログインできました。
- rootパスワード変更します。
- shellの種類を選びます。
- アカウント作成します。(UID, PW)
- 地域は自動選択
- locale自動選択
以上で設定終わり。簡単
パッケージ更新
とりあえずすべてのパッケージをアップグレードします。
# apt update && sudo apt upgrade -y
ここまでやってディスク容量を確認してみます。
nanopineo:~:% df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 50M 2.5M 47M 6% /run
/dev/mmcblk0p1 29G 1.6G 27G 6% /
tmpfs 246M 0 246M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 246M 0 246M 0% /tmp
/dev/zram1 47M 828K 43M 2% /var/log
tmpfs 50M 0 50M 0% /run/user/0
tmpfs 50M 0 50M 0% /run/user/1000
ディスクを1.6GBしか使っていません。とてもエコです。
ssh設定
クライアント側PCへ戻り、sshキーをNanoPiへ送ります。
$ ssh-copy-id u1and0@192.168.10.113
# 初回で設定したパスワードを入力します
これで次回から
$ ssh u1and0@192.168.10.113
でログインできます。
sshで入りやすくする
さらに~/.ssh/config
に追記します。
...
Host nanopineo
Hostname 192.168.10.113
User u1and0
IdentityFile ~/.ssh/id_rsa
NanoPi初期設定時にホスト名はnanopineo
に勝手にされるようですので、Host nanopineo
、
HostnameにIPアドレスを書きます。
これで
$ ssh u1and0@nanopineo
でログインできます。
パスワードログイン不可にする
公開鍵認証でログインできることを確認したら、パスワード認証ログインの必要がないので、設定を書き換えます。
ホスト側(NanoPi)でsshd_configを書き換えます。
# sudo vim /etc/ssh/sshd_config
PasswordAuthentication yes
となっているところを
PasswordAuthentication no
に書き換えます。
# sudo systemctl restart sshd.service
そして、sshデーモンを再起動します。
これでパスワードログインが不能になりました。
確認するときはNanoPiのユーザーで~/.ssh/authorized_key
というファイルをリネームしてからsshしてみてください。
ログインが弾かれるはずです。
$ ssh u1and0@nanopineo
u1and0@192.168.10.113: Permission denied (publickey).
sudoをパスワード無しで実行できるようにする
/etc/sudoersというファイルを編集すればいいのですが、しくじると一生sudoできなくなる代償の大きい呪いにかかるので、普通はvisudo
コマンドというsudoersのシンタックスをチェックしてくれるsudoers編集に特化したコマンドがあります。
$ sudo visudo
NanoPiではそのまま実行するとnanoというエディタで開きます。
Vimmerの人以外はここはスルーして次に進んでください。
vimで開くにはvimをインストールしてからvimで開くように下記のようにします。
$ sudo apt update && sudo apt install -y vim
$ EDITOR=/usr/bin/vim sudo visudo
sudersファイルが開いたら、下記のように特定にユーザーがすべてのコマンドをパスワード無しで実行できるように書きます。
u1and0 ALL=(ALL:ALL) NOPASSWD:ALL
これでユーザー名u1and0はsudoコマンドを使うときにパスワードを求められなくなりました。
ただし、運用には十分注意してあたってください。
(絶対パスワードログインできないようにする、公開鍵認証で絶対に秘密鍵を漏らさない、等)