最近、Raspberry Pi4を買いました。
せっかくなのでRaspberry Pi OS(旧Raspbian)ではなく、正式サポートされているUbuntu Desktop環境のUbuntu MATEをインストールしてみたところ、意外とハマったのでメモです。SSHでつなぐところまでやります。
インストール方法
ここからイメージをダウンロードして、MicroSDに書き込みます。
Choose an architecture | Download
イメージ書き込みはこのアプリがおすすめです。
balenaEtcher - Flash OS images to SD cards & USB drives
あとは起動するだけですね。
SSH接続のセットアップ
デスクトップ環境といっても、手元のPCからアクセスしたいこともありますよね。
ということで、SSHをつなぎます。
OpenSSHをインストール
なんと、Ubuntu MATEにはOpenSSHがインストールされていませんでした。(公式サイトにもちゃんと書いてある)
The OpenSSH server is not installed by default. Simply install it to to enable SSH.
記載の通りに下記コマンドでOpenSSH-Serverをインストールします。
sudo apt install openssh-server
有効化
インストールだけでは動きません。OpenSSHを有効化します。
sudo systemctl enable ssh
sudo systemctl start ssh
SSHキー生成
Raspberry PiのSSHキーを生成します。
Ubuntuでは下記でOpenSSHが再設定され、鍵の生成も自動で行われます。
sudo dpkg-reconfigure openssh-server
以上で、ユーザーのパスワード認証によるログインが可能になりました。
セキュリティと利便性追求のため、公開鍵での接続設定を行いましょう。
クライアント公開鍵の登録方法
接続元となるクライアントの公開鍵を登録します。
公開鍵ファイルの転送は結構めんどくさいですが、実はGitHubに公開鍵を登録していれば、非常に簡単に転送可能です。なお、公開鍵の登録はこのページから可能です。
ですがその前に…なんとUbuntu MATEにはcurlが入っていないようです。(これは意外でした)
ということで、まずはcurlのインストールからです。
curlのインストール
sudo apt install curl
これでファイルのダウンロードなど、いろいろな通信が手軽に実行可能になりました。
公開鍵のダウンロードと登録
では、気を取り直して。
実はGitHubでは、下記URLから登録済みのユーザーの公開鍵を取得することが可能です。
https://github.com/<ユーザー名>.keys
ここからクライアントの公開鍵を取得して、~/.ssh/authorized_keys
に追加すれば、サクッと鍵の登録が完了します。
下記でフォルダ作成とダウンロード、追加が完了です。わざわざSCPする必要もなく、とても簡単ですね。
mkdir -p .ssh && curl https://github.com/kiri-i.keys >> ~/.ssh/authorized_keys
ちなみに、Linuxはファイル名の大文字・小文字を区別するので要注意です。ハマりました。
以上でパスワード入力なしに、クライアントからSSH接続が可能になったかと思います。
ssh <ユーザー名>@<ホスト名>
接続が確認できたら、セキュリティ向上のためパスワード接続をブロックしましょう。
SSHのパスワード認証接続を拒否
SSHの設定ファイルを開き、
sudo vi /etc/ssh/sshd_config
#PasswordAuthentication
を#PasswordAuthentication yes
から#PasswordAuthentication no
へ書き換えます。
再起動すれば、設定が反映されるはずです。
お疲れさまでした!