Raspberry Pi OSの導入から公開鍵認証でSSH接続するまで

はじめに

ラズパイを購入した人が最初に躓きやすいポイントとして、キーボードやディスプレイとの接続が挙げられる。 モデルによっては、OTGケーブルやHDMI変換アダプタが必要になる場合もあり、準備に手間がかかってしまう。 そこで本記事では、ラズパイをキーボードにもディスプレイにも接続せずに、自分のPCから直接操作する方法を解説する。 公開鍵認証を使った SSH 接続を設定すれば、周辺機器なしで安全かつ快適にラズパイを利用できるようになる。

ラズパイにSSH接続をするにあたって、主な方法は2通りある。1つがパスワード認証、もう1つが本記事で取り扱う公開鍵認証だ。このうちパスワード認証は、初期設定に限っては楽だが、毎回パスワードを入力する手間がかかる。そのうえ、総当たり攻撃や漏洩のリスクがある。対して本記事で取り扱う公開鍵認証では、初期設定の手間こそかかる。ただ、その後のパスワード入力が必要ないため、手間が減り、セキュリティも強固になる。パスワード認証を行いたい方は、調べてみると記事がたくさん出てくるので、そちらを参照されたい。

※ 本記事では、ラズパイは CUI(コマンドライン)での操作を前提としている。GUI環境(マウスでの操作)は扱わず、最小限の構成で効率的にセットアップする流れを紹介する。


公開鍵の作成

まず、PowerShellを管理者権限で開く。画面下部の検索窓に「PowerShell」と入力し、管理者として実行を押す。はい又はいいえを選ぶ画面となったら、はいを押す。黒いウィンドウが出てきたら、成功だ。 次に、下記のコマンドを入力する。現状最もセキュリティが高い「ed25519」という暗号を用いて、公開鍵と秘密鍵を作成する。

ssh-keygen -t ed25519

途中でパスワードは何にする? などと聞かれるため、何も入力せずに「Enter」を押し続けてほしい。図が表示されたら成功だ。 暗号鍵作成のコマンド入力 その後に、エクスプローラー(ファイルマネージャー)で、「C:\ユーザー(自身のユーザー名).ssh」を開く。 id-ed25519と、id-ed25519.pubという、2つのファイルがあるはずだ。無い場合には、鍵の作成が正しく行えていない。 上書きを防ぐために、ファイル名を「id-ed25519-pizero1」と、「id-ed25519-pizero1.pub」へと変更した。各自お好みの名前に変更してほしい。 .sshのファイル これにて、公開鍵の作成は完了だ。


SSH config の作成

今のところ、公開鍵を作成しただけで、接続先(ラズパイ)の情報をPCに登録していない。本章では、configファイルを作成し、接続先情報の記述を行う。 .sshのフォルダ内に、「config」という名前のファイルを作成する。「.txt」や、「.png」などの拡張子は付けないこと。 .sshのファイル configファイルを、メモ帳や好みのテキストエディタで開く。 下記のような形式で記述する。 Userは、基本的にはメディアを作成するPCのユーザ名で良いのだが、「5. メディアの作成」にて解説する。

Host (好きな名前[半角英数字])
    HostName (好きな名前[半角英数字]).local
    User (5. メディアの作成 で解説)
    IdentityFile ~/.ssh/(.pubが無い方の鍵の名前)

筆者の場合は下記の様に記述した。 .configファイル これにて、SSH configの作成は完了だ。


Raspberry Pi Imager のダウンロード

ラズパイOSをSDカードに書き込むためのソフトウェアをダウンロードする。 下記リンクからダウンロードできる。 https://www.raspberrypi.com/software/ ダウンロードするためのサイト 「Download for windows」を押して、インストーラーをダウンロードする。


Raspberry Pi Imager のインストール

ダウンロードした「.exe」ファイルを実行する。 インストール時に使用する言語を選択する画面になるが、日本語が無いため、英語を選択する。 インストール(言語選択) 「Next」を押す。 インストール(Nextをクリック) 規約を読み、同意できる場合には「accept」にチェックを入れ、「Next」を押す。 インストール(規約同意) 「Next」を押す。 インストール(パス指定) デスクトップにアイコンが必要な場合のみ、チェックを入れる。「Next」を押す。 インストール(アイコン作成) チェックを入れて、「Finish」を押す。 インストール(フィニッシュ) これにて、Raspberry Pi Imagerのインストールが完了だ。


メディアの作成

ラズパイに使用するmicroSDカードを、使用中のPCに挿す。差込口がない場合には、別途100円ショップ等でアダプタを購入されたい。 Raspberry Pi Imagerを起動する。直前にインストールを行った場合は、すでに起動しているはずだ。 Imager(起動画面) 左側の「デバイスを選択」を押す。その後、使用するラズパイのモデルを選択する。今回筆者は、「Raspberry Pi Zero」を選択した。 Imager(ラズパイのモデル選択) 中央の「OSを選択」を押す。その後、使用したいOSを選択する。32bitと64bitの両方がある場合には、基本的に64bitの選択を推奨する。筆者のラズパイzeroは、64bitに対応していなかったため、32bitのLite版を選択した。 Imager(OS選択) Imager(OS選択other版) 最後に、右側の「ストレージを選択」を押す。その後に、OSをインストールするメディアを選択する。データはすべて削除されるため、容量をよく確認し、間違えないようにされたい。 Imager(メディア選択) すべて選択完了後、「次へ」を押す。 Imager(起動画面-選択完了) 左側の、「設定を選択する」を押す。 Imager(設定を選択する) まずは、一般タブを埋めていく。ホスト名にチェックを入れて、configファイル作成時に決めたホスト名を、.localの手前まで入れる。 Imager(一般タブホスト名設定) 次に、「Wi-Fiを設定する」にチェックを入れて、SSIDとパスワードを入力する。PCにWi-Fiを接続している場合には、自動的に入力されていることもある。 その後に、ロケールを設定する。同じくチェックを入れて、タイムゾーンを「Asia/Tokyo」、キーボードレイアウトを「jp」に設定する。 Imager(一般タブロケール設定) その次に、サービスタブを埋めていく。「SSHを有効にする」にチェックを入れて、「公開鍵認証のみを許可する」にチェックを入れる。 ユーザー○○のためのauth...と表示されるので、○○の部分をconfigファイルの「User」の後に入力する。 Imager(サービスタブ公開鍵入力前) 作成した公開鍵の、.pubファイルをメモ帳やテキストエディタで開き、全文をコピーする。メモ帳やテキストエディタは閉じてしまって構わない。 サービスタブのテキストボックスに、そのまま貼り付けする。テキストボックスが存在しない場合には、「ADD SSH KEY」を押す。 Imager(サービスタブ公開鍵入力後) 「保存」を押し、「はい」を押す。 Imager(設定保存画面) 警告を受けるので、よく確認して「はい」を押す。※指定したドライブのデータは"すべて"削除される。 Imager(警告画面) ダウンロードと書き込みが開始されるので、10分ほど待機する。 Imager(書き込み画面) 完了したら、「続ける」を押し、microSDカードをPCから取り外す。 Imager(書き込み完了画面) 以上でOSのSDカードへの書き込みは完了だ。


電源投入

microSDカードをラズパイに差し込んだ後に、電源ケーブルをラズパイに差し込む。モデルによって、USB-TypeB-micro, DCジャック, USB-TypeCだったりとまちまちなので、各自のモデルに合ったケーブルを差し込んでほしい。正しく差し込めると、基板上のLEDランプが点滅する。


公開鍵認証によるSSH接続

電源の初回投入後、10分ほど待機してから、PowerShellで下記コマンドを実行する。PowerShellに管理者権限を与える必要はない。

ssh (hostの名前)

「yes/no」などと聞かれるので、「Yes」を入力してEnterを押す。 黄緑色の文字が出たら、接続完了だ。 ラズパイにSSH接続 接続を切る際には、exitと入力する。

exit

ラズパイにexitコマンド ラズパイをシャットダウンする際には、下記のコマンドを入力する。

sudo shutdown -h now