UbuntuServerを使ってネットワークのお勉強をするはずだったけど、無線の設定につまづいたので、それを解決した話。

# 事の発端
ネットワークの知識がほぼゼロの自分に、我らがCTOがこう言った。

###「 **Ubuntu入れて〜、sshで入れるようにしてみようか〜** 」

# はじめに
私は、IT業界に入ってまだ半年ほどの新人であります。
今までITとはほぼ無縁の仕事をしていたので、この業界に来てから知識の無さが足枷になることがしばしば。
特に、ネットワークに関しては「回線が繋がってるんだなぁ」くらいの意識しかありませんでしたので、実際の業務にそれはそれは支障が出るわけです。
で、今回「なんとなく」で流してきていたネットワークについて、ありがたいことに上司から「Raspberry Pi 3 Model B」を貸していただき、CTOから冒頭のお題をいただいたので、勉強がてらいじってみることにしました。

結論から話しますと、sshで入ることに成功しました。
ただ、課題も残ったのでそれも含めて今回学んだことを綴っていこうと思います。

# 準備
◇用意したもの
・Raspberry Pi 3 Model B
・microSDカード
・キーボード（Raspberry Pi用）
（あとは、モニターとHDMIケーブル）

microSDにUbuntuServerを入れる方法はたくさんの方々が紹介しているので、割愛。
私は「[Ubuntu Server 20.04.1 LTS (64-bit)](https://ubuntu.com/download/raspberry-pi)」を入れました。（[balenaEtcher](https://www.balena.io/etcher/)が本当に簡単便利。）

# 作業手順
![スクリーンショット 2020-12-22 3.59.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/885253/c654837f-c09e-953b-e2d0-88e8f2a1a6e3.png)

[Ubuntu公式チュートリアル「How to install Ubuntu Server on your Raspberry Pi」](https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#1-overview)に沿って進めていきます。①と②はすでに準備の段階で終わっていたので、「③Wi-Fi or Ethernet」からスタート。(公式ドキュメントは英語ですが、読んでたら何年もかかってしまうので、翻訳します笑） 

#####1. イーサネットケーブルを使ってラズパイとルーターを接続、からの起動
無線の設定をしてから起動する方法があるのですが、まずは設定をいじらない方向でいきます。

起動。ログインID、パスワード入力。新しいパスワードの設定を求められるので、設定します。（詳しくは[公式ドキュメント参照](https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#1-overview)）
ログインが完了すると、色々な情報が出てきますが、その中に「IPv4 address for eth0: 192.168.XXX.XXX」という項目があり、これがこのubuntuのローカルネットワーク上のIPアドレスということになります。（さあ、呪文が増えてきたぞ。）

じゃあ、このIPアドレスを使って、いつも使ってるmacからsshでログインしてみます。

#####2. sshでログインする
ターミナルを開き、次のコマンドを実行します。@以降はubuntuでログインしたときのIPアドレスです。
```ssh ubuntu@192.168.XXX.XXX```

接続を確認するように求められるので、
```Are you sure you want to continue connecting (yes/no/[fingerprint])?```
`yes`を入力

すると、ubuntuで設定したパスワードが求められるので、入力すると、、、
![スクリーンショット 2020-12-22 4.22.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/885253/53a87e9d-bea3-fbcd-c1ea-a01adbcc9e70.png)
おお〜、無事ログインできました！

#####3. ラズパイを無線で繋げるようにする。
さて、有線では無事にログインできたので、配線を減らすためにも無線の設定をしておこうと思います。（※これが、長い道のりになることをこの時はまだ知らない。。）

一つ前のステップに戻って、ubuntuのファイルを書き換えていきます。
microSDカードを再びmacに挿し、「system-boot」パーティションを見つけます。
その中の`network-config`を編集します。（詳しくは[ここ](https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#3-wifi-or-ethernet)）
無事に変更も終わったので、確認しようと思いきや。

繋がりません。。何度見返しても、チュートリアル通りの記述をしていますです。。

こうなったら、ググるのみ。

何やかんや調べていたら、yamlファイルを編集するとのこと。

```yaml:/etc/netplan/50-cloud-init.yaml

network:
  version: 2
  ethernets:
    eth0:
    dhcp4: true
    match:
      macaddress: <MAC ADDRESS>
      set-name: eth0
  # ここから下の行を追加
  wifis:
    wlan0:
      optional: true
      dhcp4: true
      access-points:
        "wifi id":
           password: "wifi password"
```
(※余談だが、netplanは.yamlファイルのフォーマットについて非常にうるさいそうな。タブ、特定のインデント、余分なスペースがあってはいけないらしい。。そのせいで、上記のyamlファイルを書き直すのにとても時間がかかった。）

`sudo netplan --debug try`
`sudo netplan --debug generate`
と打ち、特に問題なければ
`sudo netplan --debug apply`
で適用。からの再起動。
`sudo reboot`
これで、wifiが適用されたはずです。

お、イーサネットケーブルを抜いてから見えなかった、「IPv4 address for eth0: 192.168.XXX.XXX」という項目が見えるようになってます！（スクショなくてごめんなさい。。）

コレならイケる！

ということで、macからsshしてみます。

結果は…
![スクリーンショット 2020-12-22 6.19.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/885253/d0339d95-66f0-308b-3d46-1282f49b7230.png)
よかったぁ！　ログインできました！
ここまでたどり着いたところで、私の力が尽きました。。

#感想と課題
チュートリアルの通りに進めていたのですが、うまくいかなかったのはラズパイ3だったからなのか、それともubuntuのバージョンのせいなのか謎のままだったので、もう少し調べてみたいと思いました。また、今回ターミナルで色々なコマンドを打ったけれど、きちんと意味を理解しているとは言い難いので、こちらの勉強も深めていきたいです。

次の目標は、完全に外からsshできるようにすること。
並行して、ネットワーク系の勉強も進めていきたいと思います。
（次の記事では、もう少し成長した様子が見られますように。。）

ここまで読んでいただき、ありがとうございました。