【初心者向け】Rasberry-Pi のssh接続（TeraTermとVNC）#2


##1. はじめに
こんにちは。

前回のラズパイのセットアップ完了後、
不覚にも操作用のマウスとキーボードがないことに気が付きました。。。

したがって今回は、持参のPC(Windows)からWifiを通じて遠隔操作する方法を紹介します。

前回記事
[【初心者向け】ラズベリーパイ（Rapberry pi）開発　#1](https://qiita.com/suguru_heisse/items/a12989772a05bb14c32a#%E8%B6%85%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91rasberry-pi%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A4%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E7%B5%84%E3%81%BF%E7%AB%8B%E3%81%A6)

##2. 遠隔操作の方法
ラズベリーパイを遠隔(ssh)で操作するツールとしては
今回は以下の2種類。

- CUI (Character User Interface)  ⇒ コマンドで操作
    - Teraterm
- GUI (Graphical User Interface) ⇒　画面で操作 
    -  VNC (RealVNC)

CUIは、windowsだとコマンドプロンプト、Macだとターミナルみたいに、コマンドを打って操作できる方法。
GUIは、フォルダやファイルがディスプレイ上で表示することができて、マウスで操作できる方法。
みたいな感じです。

##3. 必要な環境
今回使用した環境はこちら。

- Wifi環境
- ディスプレイ（VNC接続する場合のみ）
- PC（Windows）
    - teraterm(ソフトウェア)
        - インストール元：https://forest.watch.impress.co.jp/library/software/utf8teraterm/
        - インストール方法（参考）：https://eng-entrance.com/teraterm-install
    - VNC®VIEWER（ソフトウェア）
        - 操作される機器側に、VNC🄬Serverをインストールする必要あり。ラズパイ開発キットの場合は、すでにインストール済み。
        - インストール元：https://www.realvnc.com/en/connect/download/viewer/
    - テキストエディタ（ソフトウェア）
        - サクラエディタ、Pycharmなど
            - サクラエディタ インストール元：https://ja.osdn.net/projects/sakura-editor/
            - Pycharm インストール元：https://www.jetbrains.com/ja-jp/pycharm/download/#section=windows
         
TeraTermインストール画面
![ssh⑥.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/9fdf26f1-db37-e607-eb6e-6d7097deaa21.png)

VNCインストール画面
![ssh⑦.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/6ed0277f-9dc7-ad64-cf9c-358f12558c73.png)

##4. 設定手順
### ラズパイ用のMicroSDにファイル作成
**1. RaspberryPiに刺さっているMicroSDカードを抜きます。**

<img width="768" alt="IMG_5880.JPEG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/b35946db-48c7-fd22-b588-d77038b512fa.jpeg">

**2.下図を参考に、Raspberrypi持参キット付属のカードリーダーに挿した後、PCに挿します。**

![2020-05-12 23.22.05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/cd9ed3b0-1709-113e-f643-e36af12648c4.jpeg)
↑MicroSDをカードリーダーに挿す向き
![2020-05-12 23.22.31.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/d1e137b5-fbef-2e0b-48b7-14973fcbdd4f.jpeg)
↑カードリーダーをＰＣに挿す向き

**3."boot"という名前のディスクを選択**
![ssh①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/4293a055-9fd2-76f3-f489-527caaaec3c3.png)

**4."boot"直下のディレクトリで右クリック後、「新規作成」⇒「テキストドキュメント」を選択し、"ssh"（拡張子は.txt、ssh設定用ファイル）という名のファイルを作成する。(ファイルの中身は空でOK)**


![ssh②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/262fa443-66cf-1748-3d17-91599e6795d0.png)

![ssh③.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/9a4e72ec-ffb8-e95d-164c-125d51748099.png)
作成後↑（ラズパイが起動時にこのファイルを認識すると、ラズパイのssh機能がONになる）

**5."ssh"ファイルと同じく、"boot"直下に、"wpa_supplicant"(拡張子は.conf、wifi設定用ファイル)　を作成する。confファイルはPycharmなどのテキストエディタで作成可能。**

![ssh⑤.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/73bf7590-c716-d45b-a3b3-9f319733d9f5.png)

**6.wpa_supplicant.conf には以下のコードを記述。**


>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
>update_config=1
>country=JP
>
>network={
>    ssid="ssid" 
>    psk="pass"
>}

- "ssid"部には、wifiのssidを入力
    - 例　ssid="13453A97D134-5G"
- "pass"部には、wifiの暗号キーを入力
    - 例　psk="61984517509122"


**7.2つのファイルを作成後、MicroSDをラズパイに挿入して起動します。すると起動時に自動でスクリプトが実行され、sshおよびwifiの設定が完了します。**

### ssh接続

**8.コマンドプロンプト起動**
sshでラズパイに接続するには、ラズパイのipアドレスを取得する必要があるため、コマンドプロンプトで調べます。


![ssh⑨.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/1b18ad93-d268-fb00-93fb-0996ca324dcd.png)

**9.ラズパイのipアドレス検索**
以下のコマンドを打ち、ラズパイがwifiにつながっているか確認。
>ping raspberrypi

以下のコマンドで、wifiにつながっている機器のIPアドレスを取得。
種類が「動的」となっているIPアドレスをメモ。（複数ある場合は、余分につなげているPCなどをシャットダウン）
>arp -a

![ssh⑧.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/90fd8975-cdbb-4567-4920-c4b672ba8e41.png)

**10.teratermで接続**
TeraTermを起動し、ホストにメモしたipアドレスを入力して「OK」
![ssh⑩.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/edd4955d-bde0-17b8-d99c-dccec32638c3.png)

**11.SSH認証画面では、ユーザ名とパスフレーズを入力して「OK」**
※初期のユーザ名とパスフレーズは以下。
>ユーザ名：pi
>パスフレーズ：raspberry


![ssh⑪.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/408664c4-52bf-6c0d-1a38-9f441267e288.png)

**12. SSH接続完了画面（初めての方はセキュリティのため、sudo raspi-configでパスフレーズを変更しておきましょう）**
![ssh⑫.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/fc3f91b4-ca00-ef6d-db6b-87f85fee70ae.png)


### VNCで接続
**13.ラズパイをディスプレイに接続したのちVNCを起動、8.で調べたラズパイのipアドレスを検索し、該当する機器をクリック**
![ssh⑭.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/14b139d8-981f-f3ad-4890-50eb654b2d4e.png)

**14.sshと同様のユーザ名とパスワード（パスフレーズ）を入力してログイン**
![ssh⑮.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/03e58fdb-762e-7cf4-f516-a9788a9fc6a1.png)

**15.ログイン成功**
![ssh⑬.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632671/e09590f1-6b5d-6ce1-c748-fc0ee33fd6ab.png)



##5. まとめ
以上、RspberryPiにsshまたはVNCで遠隔操作するための手順を紹介しました。
これでラズパイ開発も楽々できそうです。
ちなみにVNCは、ラズパイがディスプレイと接続していないと接続できないみたいですね。
（仕様なのかな？原因がわかる方がいましたら、教えてください）