・UbuntuでSSHを有効にしたい人
・UbuntuにSSH接続をよくする人
・公開鍵を使ってSSH接続したい人(パスワード入力無し)
・SSH接続先デバイス:Rasberry Pi 4
・SSH接続先OS:Ubuntu Desktop 22.0.4(LTS)
・SSH接続元OS:Windows10/11

開発機とか触るようになると、SSH接続は頻繁に使いますよね~。
Rasberry PiにUbuntuを入れたのでSSHの設定をやっちゃいましょう!
もくじ
Step1:OpenSSHサーバーのインストール
Ubuntu Desktopの場合、多くはデフォルトで SSHサーバーOpen SSH Serverがインストールされていません。まず、これをインストールする必要があります。
Ubuntuのターミナルを開き、以下のコマンドを実行。
※ショートカットキー「Ctrl」+「Alt」+「T」でターミナルは開きます。
# パッケージリストの更新
sudo apt update
# OpenSSHサーバーのインストール
sudo apt install openssh-serverDo you want to continue?[Y/n]などが途中ででてきたら「Y」を押してEnterを押す。
Step2:SSHサービスの自動起動と動作確認
通常はインストールされると、自動的にサービスが起動し、システム起動時に実行されるよう設定されています。
以下のコマンドでサービスを確認します。
sudo systemctl status ssh
出力結果の「Activate」が「activate(running)」と表示されていれば、SSHサーバーは正常に動作しています。
画像のように[inactive(dead)]と表示されている場合は、以下のコマンドでサービスを起動します。
sudo systemctl start sshもう一度サービスを確認します。

「Activate: activate(running)」になったので、正常に起動しました。
SSHサービスの自動実行設定(起動、再起動時)
通常OpenSSHサーバーは、インストールした時点で自動で起動するよう設定されています。
以下のコマンドで、SSHサービスが起動時に有効になっているかを確認できます。
sudo systemctl is-enabled ssh
「enebled」となっていれば、有効になっています。画像のように「disabled」になっていたら、以下のコマンドで有効にします。
sudo systemctl enable ssh
これで、次回システム起動時から自動でSSHサーバーが立ち上がります。
もう一度有効になっているか確認しましょう。

画像のように「enabled」になっていることが確認できれば大丈夫です。

シャットダウンした後に毎回サービスをスタートするのはめんどくさいから、設定必須ですね!
Step3:SSHポートの開放(ファイアウォール設定)
Ubuntuは標準でUFW(Uncomplicated FireWall) というファイアウォールシステムを使用しています。SSHのアクセスを許可するように設定する必要があります。
※以下のコマンドで、ファイアウォールの状態は確認できます。
sudo ufw status以下のコマンドで、SSHポート(22)を許可しましょう
# SSH接続(ポート22)を許可
sudo ufw allow ssh
# 設定を反映(ファイアウォールを有効にする)
# すでに有効な場合は不要
sudo ufw enable

Step4:外部からの接続テスト
最後に別のPCから、Rasberry PiのUbuntuに接続できるかを確認します。
まずは、以下のコマンドで、UbuntuPCのIPアドレスを確認します
ip a表示されたIPアドレスをこれから使っていきます。(例:192.168.1.10)

別のPCから、SSH接続をしましょう。
今回はWindowsのコマンドプロンプトで、以下のコマンドを実行します。
ssh [ユーザー名]@[UbuntuのIPアドレス]例)ssh doradora1@192.1680.0.1
パスワード入力を求められるので、Ubuntuユーザーのパスワードを入力。

パスワードが通って、コマンドプロンプトがUbuntu側のユーザー名に変われば、SSH接続完了です。


これで、SSH接続で何でもできるから、Rasberry Piは好きなところにおけるようになった!
毎回パスワード書くのもめんどくさいし、忘れちゃうから次は公開鍵を設定しよう!
公開鍵を登録する(Ubuntu側に)
毎回SSH接続するたびにパスワード入力するのを省くために設定します。
まずはSSH接続元のPCで、暗号化された鍵のペアを作成します。(RSA方式)
以下のコマンドを実行。
ssh-keygen -t rsa -b 4096デフォルトでは ~/.ssh/id_rsa に保存されます。そのまま Enterを押す。
作成した id_rsa.pub の内容を、Raspberry PiのUbuntuサーバー(接続先)の認証リストに追加します。
下記のコマンドを実行する。
sudo nano ~/.ssh/authorized_keysid_rsa.pubの内容を張り付けます。「ctrl」+「S」で保存し、「Ctrl」+「X」でファイル編集を終了します。


これで、登録完了です。一度SSH接続を切って、再度接続してください。
パスワード入力が不要になっているはずです。

これで、SSH接続が簡単にできるようになりました!本格的に開発機、サーバーとしてRasberry Piをいじっていきます!
公開鍵の登録とかめんどくさい作業を省くような設定は積極的に取り入れていきましょう!
SEの時間外労働 
