SSHでログインする

WiFi接続の確認

シリアルコンソールでの接続が開通しましたが、実運用においてはあまり使用しません。
メインの作業はEthernet接続でSSHというプロトコルを使用します。SSHは「Secure Shell(セキュア・シェル)」の略で暗号化された通信で遠隔のコンピュータを操作するためのプロトコルです。
今回、Raspberry Pi Zero W には WiFiの機能があるので、SDイメージの作成時に設定をおこないました。

SDイメージの作成時に設定を行った内容が適切に設定できているか確認するために ifconfig コマンドを使用します。 実行結果に wlan0 が表示され下記のような表示が出力されれば無線LANルーターに問題なく接続しています。

   inet 192.168.0.13  netmask 255.255.255.0  broadcast 192.168.0.255       

全体的な出力は下記のようになります。

pi@raspberrypi:~$ ifconfig                                                      
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536                                    
        inet 127.0.0.1  netmask 255.0.0.0                                       
        inet6 ::1  prefixlen 128  scopeid 0x10<host>                            
        loop  txqueuelen 1000  (Local Loopback)                                 
        RX packets 170  bytes 14560 (14.2 KiB)                                  
        RX errors 0  dropped 0  overruns 0  frame 0                             
        TX packets 170  bytes 14560 (14.2 KiB)                                  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0              

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500                     
        inet 192.168.0.13  netmask 255.255.255.0  broadcast 192.168.0.255       
        inet6 fe80::96a0:6816:53d6:2d61  prefixlen 64  scopeid 0x20<link>       
        inet6 240f:30:b191:1:780c:eaef:21ca:9513  prefixlen 64  scopeid 0x0<glo>
        ether b8:27:eb:e2:9b:4a  txqueuelen 1000  (Ethernet)                    
        RX packets 7  bytes 784 (784.0 B)                                       
        RX errors 0  dropped 1  overruns 0  frame 0                             
        TX packets 30  bytes 4296 (4.1 KiB)                                     
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0              

pi@raspberrypi:~$ 

もし、ifconfigの出力結果が上記のようでなければ、次にwpa_cli コマンドを用いて接続状態を確認してみましょう。

pi@raspberrypi:~$ sudo wpa_cli status | grep wpa_state                          
wpa_state=COMPLETED                                                             

もし、「COMPLETED」と表示されてIPアドレスの割り当てが行われていない場合は、Raspberry Pi Zero W を再起動してみましょう。
再起動のコマンドは下記のように入力します。

pi@raspberrypi:~$ sudo reboot                                                   

Broadcast message from root@raspberrypi on pts/0 (Fri 2024-07-05 23:49:54 JST): 

The system will reboot now!                                                     

まだ、「COMPLETED」と表示されていてもIPアドレスの割り当てがない場合は無線LANルーターの不調が考えられるので、無線LANルーターの再起動をしてみてください。
また、「COMPLETED」以外のケースもあります。この場合は、正しく、無線LANルーターに接続されていないのでSDカード作成時の設定に問題があったケースが考えられます。

sshのログイン

現在は、開発用の ubuntu から Raspberry Pi Zero W にシリアルコンソールでログインしていますが、別のターミナルを起動し ssh からのログインを試みたいと思います。
まず、ssh のインストールを行います。

$ sudo apt install ssh

インストールを完了したら、sshのログインを行います。
ssh のログインは下記のようなコマンドを実行します。

ssh ユーザー名@IPアドレス

ユーザー名は Raspberry Pi Zero W にシリアルコンソールでログインした際と同じ名前です。
もし、開発用の ubuntu と同じユーザー名であれば、IPアドレスのみ指定してログインすることが可能です。
IPアドレスには先ほど ifconfig で取得した wlan0 に割り当てられたIPアドレスを指定します。

$ ssh pi@192.168.0.13
The authenticity of host '192.168.0.13 (192.168.0.13)' can't be established.
ED25519 key fingerprint is SHA256:mCfpSUjgIV3qcYnisW91nO039TN1Zvz+gKEOyU5M4bw.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.13' (ED25519) to the list of known hosts.
pi@192.168.0.13's password: 

コマンドを実行するとパスワードを聞かれるので、シリアルコンソールでログインした際と同じパスワードを入力してください。
また、初めてログインする場合、接続して良いかの確認があるので、 yes で答えてください。

無事にログインできれば、下記のようなメッセージが出力されるはずです。

Linux raspberrypi 6.6.20+rpt-rpi-v6 #1 Raspbian 1:6.6.20-1+rpt1 (2024-03-07) armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jul  6 00:03:28 2024

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@raspberrypi:~ $ 

色々弄っていて見てください。 ログアウトする際は、下記のように入力します。

pi@raspberrypi:~ $ exit
logout
Connection to 192.168.0.13 closed.

これで、無事に 開発用の ubuntu のコンソールに戻ってきました。
今後の作業はsshにてログインを行ってください。

おまけ

さて、今までは 開発用の ubuntu、Raspberry Pi Zero W とそれぞれ表記してきましたが、次章以降は開発用PCとラズパイと略称にて表記させていただきます。