読者です 読者をやめる 読者になる 読者になる

Raspberry PI にSSHとVNCを設定しリモート操作可能にする

photo by shokai

はじめに

Raspberry PI で作業をする際に、専用のキーボードやマウスを用意し、ディスプレイを切り替えて行うのはスペース的にも手間的にも無駄が多いものです。

そこでRaspberry PI のリモート環境を整えて、普段使っているPC環境から作業ができるようにします。

具体的には以下の設定を行います。

無線LAN の設定

Raspberry PI のUSBコネクタ無線LAN アダプタを差し込み、いくつかの設定を行うことでネットワークに接続することができます。

USB無線LAN アダプタの選び方ですが、USBコネクタは2つ並びで配置されているので、なるべく小さく薄いものがよいでしょう。

私はPLANEX GW-USNANO というものを使用しています。

PLANEX 11n/g/b対応 150Mbpsハイパワー無線LAN 携帯電話用USBアダプタ GW-USNano2-M

PLANEX 11n/g/b対応 150Mbpsハイパワー無線LAN 携帯電話用USBアダプタ GW-USNano2-M

/etc/wpa_supplicant/wpa_supplicant.conf を以下のように編集します。今回はWPA2-PSK による接続を行う例です。

$ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1    # アクセスポイントが非公開の場合は1にする
network={
        ssid="<無線アクセスポイントのSSID>"
        proto=WPA WPA2
        scan_ssid=1
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP
        psk=<暗号化されたパスフレーズ>
}

psk=<暗号化されたパスフレーズ>の部分は以下のコマンドで取得できます。

$ wpa_passphrase <無線アクセスポイントのSSID> <暗号化前のパスフレーズ>
network={
    ssid="<無線アクセスポイントのSSID>"
    #psk="<暗号化前のパスフレーズ>"
    psk=<暗号化されたパスフレーズ>

}

さらに /etc/network/interfaces を編集します。 $ cat /etc/network/interfaces auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid <無線アクセスポイントのSSID>
wpa-driver wext

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Raspberry PI を再起動し、無線アクセスポイントに接続されているか確認しましょう。 $ /sbin/ifconfig wlan0 Link encap:イーサネット ハードウェアアドレス 00:22:cf:3d:02:05 inetアドレス:192.168.1.7 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:551 エラー:0 損失:10 オーバラン:0 フレーム:0 TXパケット:157 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:133517 (130.3 KiB) TXバイト:23288 (22.7 KiB)

192.168.1.7 という無線LANのネットワークに接続されました。(ネットワークアドレスは環境により異なります。)

SSH によるリモートシェルの設定

SSH の設定はRaspberry PI の設定コマンドであるraspi-configコマンドで行います。

$ sudo raspi-config

メニューから"Advanced Options" を選びます。

f:id:zonomasa:20140114005759p:plain

次にサブメニューから"SSH" を選び、遷移後の選択肢で"Enable" を選びます。

f:id:zonomasa:20140114005811p:plain

f:id:zonomasa:20140114005759p:plain

これでSSH が可能となりました。

他のPCから以下のコマンドを打ち、Raspberry PI のSSHが起動しているか確認しましょう。

$ ssh pi@192.168.1.7              # IPアドレスは無線LAN設定の最後で確認したものになります。

VNC によるリモートデスクトップ設定

VNC はPC を別のネットワーク接続されたPC から操作するためのソフトウェアです。VNC サーバがインストールされたPC をVNC クライアントソフトでリモートから表示することができます。

SSH と異なる点は、GUI を含めたデスクトップ画面をそのまま操作できることです。Windowsリモートデスクトップと同じ使用感です。

操作される側、つまりRaspberry PI へのVNCサーバのインストールは至ってシンプル、以下のコマンドを叩くだけです。

$ sudo apt-get update
$ sudo apt-get install tightvncserver

インストールが完了したら起動します。初回起動時にはパスワードを聞かれますので設定をしましょう。

$ tightvncserver

無事起動したかどうかを確認します。ログファイルを見てみましょう。

$ cat ~/.vnc/raspberrypi:1.log
   13/12/13 16:33:31 Listening for VNC connections on TCP port 5901

ここで5901 がVNC サーバの待ち受けポート番号となります。PC側からログインする際に必要となります。

次に操作する側、VNC クライアントの説明になります。

Windows であればRealVNCがシンプルで使いやすいでしょう。

今回はMac でのFinderから接続する方法を説明します。

Mac では特別なソフトウェアを使用しなくてもVNC サーバに接続できます。

Finderを開き、メニューから"移動”->"サーバーへ移動"を選択します。

するとアドレスを入力するウインドウが開きますので"vnc://:<ポート番号>"を入力します。 以下は私の環境の例です。

f:id:zonomasa:20140113120906p:plain

接続を押し、Raspberry PI のデスクトップが表示されたら成功です。

f:id:zonomasa:20140114010106p:plain

まとめ

Raspberry PI を無線LANでネットワークに接続し、SSHVNC を設定しました。

これにより、Raspberry PI へ接続するケーブルは電源ケーブルのみになります。

省スペースが売りのRaspberry PI なのでなるべく最小限の接続するで利用したいものです。

Raspberry Pi Type B 512MB

Raspberry Pi Type B 512MB