ラズパイ4にRaspbianOS Liteの導入&初期設定~SSHログインまで

お仕事でnode.jsの案件が入ってきたので久々にラズパイ4のサーバー立ち上げるかー と思って起動したらコンソール画面の左上でカーソルが点滅した状態で 起動しなくなってしまったので再インストールを行いました。

インストールする際に毎回ググって人様のまとめをみてやってたのですが、 これを機に自分の所で完結できるようにやったことをまとめておこうかなと思います。

SDカードにOSを書き込む手順は割愛しています。

やってもよかったのですが、この記事を書こうと思ったときが もうSDカードに書き込んだあとだったので今回はOS初期設定~のことだけにします。

SDカード書き込みに関しては次初期化した時にやろうかなと思います。

64GのSDカードとかの問題もありますからね。

あとLiteでの動作になりますので、すべてCUIでの設定なので注意してください。

初回起動~ログイン

最初はSDカードにOS「Raspberry Pi OS Lite」を書き込んで起動して最初の画面から始めます。

GUIでの設定は一切ないので、起動時少し待つとログインIDを求められます。

設定してないのにログインIDとは?となりますが、Raspberry Pi OSは 初期ユーザー名とパスワードが設定されています。

  • 初期ユーザー名:pi
  • 初期パスワード:raspberry

となっています。 これでログインしてまずはユーザー関連の設定を行います。

rootパスワードの設定

rootのパスワードは初期では設定されていないので最初に設定しておきましょう。

rootはもちろん最高権限者なのでパスワードを忘れない&漏らさないようにするのが鉄則です。

sudo passwd root

このコマンドを実行するとルートのパスワードの設定ができます。

確認を含め2回聞かれるので間違わないようにしましょう。

変更し終わったら次に新しいユーザーを作ります。

piユーザーはユーザー名が既に割れてしまっているのでセキュリティ的に安全とは言えません。

パスワードを変えてしまえばいいのですが、せっかくなのでユーザーを作ってみましょう。

新規ユーザーの作成とsudo権限の追加

新規ユーザーを作成するのは以下のコマンドになります

sudo adduser [作成したいユーザーの名前]

カッコの部分を任意の名前を半角英数字で入力してください。

もちろんカッコ無しでOKです。

あと現状はpiユーザーでログインしている状態なので、 コマンドの先頭にsudoを付けてやっています。

ルートユーザーのパス設定と同じくして最初に2回パスワード入力を求められるので 忘れないようにして入力してください。

その後フルネームとか聞かれるので無視で大丈夫です。

エンター5回目ぐらい押したら

Is the information correct? [Y/n]

と、入力が正しいか聞いてくるので「Y」と入力してエンターを押すと ユーザーの作成が完了します。

作成したユーザーにsudo権限を付ける

メインで使っていくユーザーに対してsudoを使える権限を付与します。

これをやらないと権限が必要な場面で毎回rootに切り替えないといけないので 色々と不便なのでやっておきましょう。

sudo gpasswd -a [先程作成したユーザー名] sudo

このコマンドを実行すると作成したユーザーにsudo権限が付与されます。

これでpiユーザーがもう不要になったのでセキュリティ的に不安要素となる デフォルトユーザーであるpiユーザーを使えないようにしましょう。

piユーザーの削除をしてはいけない

セキュリティ的にデフォルトのpiユーザーを消してしまいたいところですが、 ラズベリーパイ初期で生成されたユーザーなので消してしまうと piユーザー権限のファイルがroot以外でいじられなくなってしまいます。

rootでも編集可能だからいいじゃんっていう考えは基本捨てておいたほうがいいでしょう。

rootは基本的に何でも出来てしまうので、間違ったファイルを消してしまう可能性は0ではないので Linux初心者はrootを過信するのはやめておいたほうがいいです。

セキュリティ的に心配であればデフォルトパスワードの「raspberry」ではなく 難解なパスワードにしておけばいいでしょう。

メチャクチャなパスワードにして誰も入れないようにするのもありですが、 なんかあったときログイン出来ないと都合が悪いので一応piユーザーも自分で管理しておきましょう。

それではpiユーザーのパスワードの変更とsudo権限の剥奪を行います。

一応piというユーザー名も割れてしまっているので名前も変更しておくことをオススメします。

piユーザーのパスワードの変更

現状piユーザーでログインしている状態なので

passwd

このコマンドを実行するとパスワードの変更になります。

まずは現状のパスワードを聞かれるので「raspberry」を入力してエンター。

その後新しいパスワードを2回聞かれるので任意のパスワードに変更してください。

問題なければパスワードの変更は完了です。

piユーザーのsudo権限の剥奪

デフォルトでついているpiユーザーのsudo権限を剥奪しておくと 仮にログインされても殆ど権限がないため色々と安全です。

sudo gpasswd -d pi sudo

これを実行すると、piユーザーにsudo権限がなくなりました。

以降sudoは使えないので一旦ログアウトして 新しく作ったユーザーでログインしなおします。

logout

logoutコマンドを実行すると再びログイン画面に戻ります。

作成したユーザー名とパスワードを入力してログインしましょう。

その後、念の為piユーザーのパスワード無しでのsudo権限の実行許可を解除を行います。

sudo vi /etc/sudoers

編集するエディタはviにしていますが、 ラズパイならnanoもデフォルトで入っているのでお好きな方で編集してください。

cuiになれてない人はviは正直使いづらいので

sudo nano /etc/sudoers

で大丈夫です。

viやnanoの使い方はまたいずれ解説しますが、今は各自ググってみてください。

バージョンによってはsudo権限を剥奪した際に自動でパスワードなしsudo実行の記述も消えているかもしれません。

私の方はどうやら消えていたようで特に変更を加える必要はありませんでした。

piユーザー名の変更

それでは最後にpiユーザーの名前を変更しましょう。

sudo usermod -l [任意のユーザー名] pi

これでユーザー名とパスワードとsudo権限の剥奪が完了しました。

あまり使うことはないかもしれませんが、変更した点は各自ちゃんと控えておきましょう。

ラズパイ独自のコンフィグを使う

Raspberry Pi OSで設定するときはデフォルトで組み込まれているコマンドを入力すると楽になります。

Linuxの知識が高い人は自由にいじってもらって大丈夫ですが、 初めてのRaspberrypiだという人は専用のコンフィグコマンドを打ち込んで GUI的に設定していくことをオススメします。

sudo raspi-config

これで背景が青い状態で灰色の枠のコンフィグ画面が出てくると思います。

ここではラズパイの様々な設定が簡単に行えるようになっています。

ただ、全て英語なので英語が読めない人はいじりすぎないほうがいいです。

タイムゾーンとか日本語仕様に変更

デフォルトだとタイムゾーンやキーボードの設定なんかは海外仕様になっていますので、 変更しておくことをおすすめします。

キー入力仕様を日本語キーボードに変更するかは任意で構いませんが、 タイムゾーンはよほどの問題がない限り日本にしておいたほうがいいでしょう。

まずはタイムゾーンを変更します。

先程のraspi-configコマンドを入力した直後の状態から

  • 1: カーソルを「5. Localisation Option」に合わせてエンターを押す
  • 2: カーソルを「L2 Timezone」を合わせてエンターを押す
  • 3: カーソルを「Asia」に合わせてエンターを押す
  • 4: カーソルを「Tokyo」に合わせてエンターを押す

これで自動的にタイムゾーンを「Asia/Tokyo」に変更してくれます。

Localeなんかも好みで日本仕様に変えてもいいですが、 私はタイムゾーン以外は英語で慣れておきたいのでそれ以外の変更はしません。

Wi-Fiの設定を行って静的IPアドレス(固定IP)にする

今回の目的はSSHでログインできるようにしたいので、 まずはLANに接続するためにWi-Fiの設定を行いましょう。

有線LANをメインにする場合はWi-Fiの設定は別にいらないかなと思います。

私は場所的に有線は厳しいのでWi-Fiを使っていきます。

WiFiの設定

raspi-configの最初の画面で「System Options」を選択

「S1 Wireless LAN」を選択してリストからJapanを探し出して選択。

その後、自分のルーターのSSIDとパスワードを入力していきます。

設定が終わると最初の画面に戻ります。

一応ちゃんとつながっているか確認してみましょう。

一旦「finish」を選択して再起動を行います。

再度ログインして「ip addr」のコマンドを打って IPがルーターのものになっているか確認します。

よくある家庭用ルーターであれば「192.168.0.xxx」というアドレスが割り当てられているかと思います。

ルーターによっては「2.0.0.xxx」とかなっているかもしれませんが、 環境によって異なりますので各自ルーターの仕様を確認してみてください。

問題なくIPが割り振られていたらLAN内で通信できてるのでOKです。

一応内部と外部に接続できるかpingを送ってみましょう。

ping 192.168.0.xxx -c 4

自分のメインPCや他の端末が持つIPにpingが飛ぶか確認します。

問題なく飛んでいればLANでの接続はOKです。

では次に外部に飛ばしてみましょう。

とりあえずyahoo.co.jpにおくってみます。

ping yahoo.co.jp -c 4

タイムアウトとかになっていなければインターネットにつながっていることになります。

静的IPに変更しておく

現状、DHCPを使用している動的アドレスとなっていますので サーバーとして使用する場合かってにIPが変わってしまっては色々と不都合です。

なので現状割り振られているIPを静的なIPアドレスとしてラズパイに固定してしまいましょう。

本来はルーター側でもこのIPは自動で割り振らない等の設定をしておいたほうがいいですが、 ルーターによって設定方法が異なるのでそこは各自ググってください。

先程の「ip addr」コマンドでラズパイのIPが判明していると思いますので xxxと記述するのが面倒なので以降「192.168.0.11」をラズパイのIPとしていきます。

各自割り当てられたIPに置き換えてみてください。

それでは静的IPの設定をしていきます。

sudo nano /etc/dhcpcd.conf

これを開くと何やら色々記述されていると思いますが、カーソルを一番下に持っていき 1つ改行を行ってから新しく記述していきます。

# raspi static ip settings 2021/02/26
interface wlan0
static ip_address=192.168.0.11/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

1行目はコメントなので何かわかりやすいものをつけてOKです。

2行目はインターフェース名です。

恐らくだいたいが「wlan0」だと思いますが、環境に合わせて変更してください。

3行目は先程確認したラズパイのIPです。最後に「/24」を付けるのを忘れないようにしましょう。

4行目はルーターが持つIPです。恐らく基本はIPの一番最初になる「192.168.0.1」だと思います。

ここも各自ルーターと相談して変更してください。

5行目はDNS、つまりアクセスするための名前ですね。

基本はルーターのIPと同じで構いませんが、独自ドメインでアクセスしたい場合とかは このへんをドメイン名に変更して色々設定してやる必要がありますが今回DNSに関しては触れません。

保存をして一旦再起動しておきましょう。

再起動コマンドは

reboot

で再起動できます。

SSHの許可を行ってメインPCからログインする

固定IPの設定も終わったので次はいよいよSSH接続の設定です。

raspi-configでコンフィグ画面を出してから

「3. Interfeace Options」を選択して「P2 SSH」を選択。

SSHを有効にするか聞かれるのでYESを選択。

問題なければ完了するので、しなくてもいいかもしれませんが一応再起動しておきましょう。

再起動が終わったらもうSSHでメインPCからログインできると思うのですが その前にアップデートやらをやってしまいましょう。

sudo apt update -y
sudo apt upgrade -y

環境によっては時間がかかるかもしれませんが、 それぞれのアップデートを行っておきましょう。

-yオプションはアップデートするかの選択を無視して自動的にアップデートしてくれます。

放置しておきたい人はオプションにいれておきましょう。

おまけ

おまけ:swap領域をなくしてSDカードの延命対策 https://azriton.github.io/2017/03/16/Raspbian-Jessie-Lite%E3%81%AESD%E3%82%AB%E3%83%BC%E3%83%89%E5%BB%B6%E5%91%BD%E5%8C%96/

最後にこれをやってみました。 正直やらなくても大丈夫かなとは思います。

これをやることによってのデメリットとかも知りたいので一旦適用しました。

次回はメインPCからSSHでログインできるようになったのでメインPCの近くに置かなくてもよくなりました。

なんならルーターのすぐ近くに有線でつないでもいい気がしましたね。

次はnode.jsを導入していこうかなと思います。

恐らく普通にaptでインストールすると古いバージョンが入ってしまうので、 それの対策とか入れ方なんかが中心になると思います。

それでは。