Raspberry Pi3のsshとvnc接続(VNCの自動起動とIPの固定も)


先日から少しずつRaspberry Pi3の設定を始めているところですが、前回WiFiの設定が完了しましたので、今度はsshとVNCを設定して万全のリモート接続体制を構築したいと思います。といってもsshはデフォルトで使えるので、sshの接続確認の後、VNCの設定に移りたいと思います。ちなみにsshもVNCも接続の方向はUbuntu(PC)側からRaspberry Pi3側です。

sshの接続確認

さてsshの接続確認ですが、今回はUbuntu(PC)の端末からRaspberry Pi3に接続します。
まずはRaspberry Pi3のipアドレスの確認です。[Ctrl] + [Alt] + [T]のキーボード・ショートカットか、画面左上の「アプリケーション」->「システムツール」->「MATE端末」を選択して端末を起動します。
端末が起動したら以下コマンドを入力して「wlan0」の項にある「inet addr」を確認しましょう。

ifconfig

ipアドレスの確認が終わったら、Ubuntu(PC)側でも端末を起動してsshで接続してみましょう。

ssh ipアドレス

仮にRaspberry Pi3のipアドレスが192.168.0.10だった場合、実際のコマンドは以下のようになります。

ssh 192.168.0.10

コマンドを実行すると、初回のssh接続ということもあり、以下のようなメッセージが表示されます。

The authenticity of host ‘192.168.0.10 (192.168.0.10)’ can’t be established.
ECDSA key fingerprint is SHA256:0L1ldSRaQAK1+JxPVWZmW5ymTSEyeNTvlxWwFCebBKw.
Are you sure you want to continue connecting (yes/no)?

メッセージを確認したら「yes」と入力してEnterキーです。
すると、以下のようなメッセージが表示されて準備完了です。

Warning: Permanently added ‘192.168.0.10’ (ECDSA) to the list of known hosts.
ssh_packet_read: Connection closed

準備が整ったところで再度先ほどと同じように[ssh ipアドレス]で接続をかけると、今度は以下のようにパスワードを聞いてきます。パスワードを入力しても端末上には表示されませんが、入力が完了したらEnterキーです。

ユーザー名@192.168.0.10’s password:

こんな感じのメッセージが表示されたらssh接続完了です。

Welcome to Ubuntu 15.10 (GNU/Linux 4.1.18-v7+ armv7l)
* Documentation: https://help.ubuntu.com/
0 packages can be updated.
0 updates are security updates.
Last login: Mon Mar 28 21:40:30 2016 from 192.168.1.5
To run a command as administrator (user “root”), use “sudo “.
See “man sudo_root” for details.

作業が終わった後、sshを切断する際のコマンドは[exit]です。
ちなみにユーザー名を指定してssh接続したい場合は以下のようにします。

ssh ユーザー名@192.168.0.10

VNCのインストールと初期設定

続いてはVNCの設定です。せっかくsshの接続確認が終わったところですので、ssh経由でVNCの設定を行いたいと思います。
先ほどの要領でsshでRaspberry Pi3に接続したら、以下コマンドでVNCサーバをインストールします。

sudo apt-get install tightvncserver

インストールが完了したら以下コマンドでvncserverを起動します。

vncserver :1

初回起動時は以下のようにvnc接続時に使用するパスワードの設定を求められますので、任意のパスワードを設定しましょう。
これでインストールと初期設定は完了です。

You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

VNC接続

VNCのインストール作業が完了したところで接続確認に移りたいと思います。
今回はUbuntu(PC)からVNCでRaspberryPi3に接続するわけですが、UbuntuにはデフォルトでRemminaというVNCクライアントとしても使えるソフトウェアがインストールされていますので、それを使います。
[アクティビティ]からアプリケーションの一覧を表示し、[Remmina]を選択して起動しましょう。
raspberrypi3_vnc_01

Remminaを起動したら、「新規」ボタンをクリックします。
raspberrypi3_vnc_02

接続設定ウィンドウが開いたら、プロトコルを「VNC – 仮想ネットワークコンピューティング」に変更し、「サーバー」には「ipアドレス:5901」を入力の後、Raspberry Pi3のログインユーザーとパスワードを入力して「Connect」ボタンをクリックします。
raspberrypi3_vnc_03

続いて先ほど設定したVNCパスワードを入力して「OK」ボタンをクリックします。
raspberrypi3_vnc_04

こんな感じでRaspberry Pi3に接続できれば設定完了・・・
かと思いきや、上部メニューが表示されていなかったりで若干うまく動作していないようです。
raspberrypi3_vnc_05

ただ、Raspberry Pi3を再起動した後、ssh接続で[vncserver :1]を実行してあらためてVNC接続してみるときちんと動作するのが確認できるかと思います。また、接続設定で色数を「True color(24bit)」に、品質を「高」に変更すると、美しい画像が転送されてくるようになります。その分転送量が増えてしまうので注意が必要ですが。
raspberrypi3_vnc_06

vncserverの自動起動

一通りリモート接続が可能になりましたが、VNCを使うことを考えるとこのままではRaspberry Pi3を起動するたびに毎回[vncserver :1]を実行する必要があります。
それはそれで面倒なので、cronで自動起動するようにしたいと思います。

実機でもsshでもどちらでも構いませんが、Raspberryで以下コマンドを実行します。

sudo crontab -e

コマンドを実行するとエディタを選択するように促されるので、1-3から好きなエディタを選択してください。私の場合vimは一応使えますが、edもnanoも使い方を全く覚えていないので3一択です。

no crontab for root – using an empty one
Select an editor. To change later, run ‘select-editor’.
1. /bin/ed
2. /bin/nano <---- easiest 3. /usr/bin/vim.tiny Choose 1-3 [2]:

エディタを選択したら末尾に以下1行を追加して上書き保存します。

@reboot su -c “vncserver :1” ユーザー名

もしRaspberry Pi3にログインする際のユーザー名が[user]だった場合は以下のようになります。

@reboot su -c “vncserver :1” user

上書き保存が終わったら、Raspberry Pi3を再起動した後、RemminaでVNC接続が可能かチェックしてみてください。
問題無く接続できればOKです。

ちなみに、コマンドでRaspberry Pi3を再起動するには以下コマンドを実行します。

sudo shutdown -r now

IPアドレスの固定

さて、それでは最後の仕上げにIPアドレスを固定しましょう。
直接接続でもvnc経由でもどちらでも問題無いので、ネットワークアイコンをクリックして「VPN Connections」->「Configure VPN」を選択します。
raspberrypi3_vnc_07

ネットワークの一覧が表示されたら、IPを固定したい設定を選択して「Edit」を選択します。
raspberrypi3_vnc_08

エディット画面が表示されたら「IPv4 Settings」タブを選択して、Methodを「Manual」に変更したらアドレスとDNS servers:を入力します。全ての入力が完了したら「Save」ボタンで設定完了です。
ちなみに以下のスクリーンショットは[192.168.1.97]にIPを固定しています。
raspberrypi3_vnc_09

もし固定したいIP以外の情報がわからない場合は以下コマンドで実機の情報を確認し、その情報を転記したらいいかと思います。

IPアドレス他、Netmaskなどの情報

ifconfig

Gatewayの情報

route

IPも固定したし、これでいつでもリモート接続可能になりました。
ここまでやればいざとなればVNCも使えるし、HDMIケーブルやキーボード・マウスレスでも楽々使いこなせちゃいますね。
さて、環境もできてきたことだし、そろそろ電子部品の出番かな。

コメントを残す

メールアドレスが公開されることはありません。