SSHでRaspberry Piとファイル共有&リモート操作 (Windows/Mac/Ubuntu対応)

Windows/Mac/UbuntuなどのPCからSSHでRaspberry Pi(ラズパイ)に接続し、ファイル共有やコマンドによるリモート操作する方法を解説しています。離れた場所にあるRaspberry Piとファイルを簡単にやり取りできるので、活用の幅が広がります。Raspberry Piのログファイルをダウンロードしたり、PCの音楽や動画をRaspberry Piへアップロードすることもできます。

更新日 : 2020年9月3日

SSHとは

SSHとは、PCやRaspberry Piなどのデバイスの間で、ネットワークを介して安全に通信する仕組みのことです。SSHは主にターミナルでコマンドで操作することに使われる他、ファイルのやり取りもサポートしています。この機能はSFTPと呼ばれます。

本記事では、SSHを使用して、Raspberry Piのファイルを他のPCから参照できるようにしたいと思います。

SSH接続とファイルのやり取り

SSH/SFTPに対応したアプリを使えば、スマートフォンでもファイルを共有したり、リモート操作することができます。

Raspberry PiのSSH設定

まずはRaspberry PiでSSHを有効にしておきます。本記事では、Raspberry Piのファイルを他のPCから参照できるようにするので、サーバーとして動作させます。

スタートメニューから、「設定 -> Raspberry Piの設定」をクリックします。

設定ツールが起動するので、上部タブから「インターフェイス」を選択し、SSHの項目を「有効」にチェックして、「OK」をクリックします。

以上でRaspberry PiのSSH設定は完了です。

後で必要になるのでIPアドレスを確認しておきます。画面右上のネットワークアイコン上にマウスポインターを移動させると、IPアドレスが表示されます。

PCでファイル共有設定 (Windows)

本記事では、SFTPでのファイル転送をサポートしているクライントソフト、WinSCPを使う方法を解説します。

WinSCPのインストール

窓の社の、「窓の社からダウンロード」をクリックしてダウンロードします。

ダウンロードしたexeファイルを実行するとインストーラーが起動します。

インストールモードはどちらでも構いません。今回は現在のユーザーのみ使用できるようにします。使用許諾に同意できる場合は「許諾」をクリックします。

デフォルトの標準インストール、コマンダーのまま「次へ」をクリックします。

「インストール」をクリックして完了です。

WinSCPを起動してRaspberry Piに接続する

WinSCPを起動すると、以下のようなログイン画面が表示されます。

転送プロトコルに「SFTP]、ホスト名にRaspberry PiのIPアドレス、ポート番号に22を入力します。Raspberry Piのユーザー名とパスワードを入力し、「ログイン」をクリックします。

初めて接続する場合は未知のホストとして警告が出ますが、「はい」をクリックします。

なお、一度接続した後にRaspberry Piを再インストールすると鍵が一致しないため警告が出ますが「更新」をクリックすれば大丈夫です。

右側にRaspberry Piのディレクトリの内容が表示されれば接続成功です!ローカルが左側に表示されます。ドラッグ&ドロップや、メニューなどから、ファイルをコピーしたり、移動することが可能です。

PCでファイル共有設定 (Mac)

Mac OSはデフォルトではSSHを使ったファイルのやり取り(SFTP/SSHFS)に対応していません。本記事ではサードパーティ製ソフト「FUSE for macOS」をインストールすることで、FinderやターミナルからRaspberry Piのディレクトリを参照できるようにする手順を説明します。

FUSE for macOSのインストール

FUSE for macOSのページから、「FUSE for macOS」および「SSHFS」をダウンロードします。前者がMacで標準対応していないファイルシステムを扱う枠組みを提供し、後者が実際にSSHをつかってファイルをやり取りするためのソフトです。

「FUSE for macOS」からインストールしていきます。dmgファイルを開いて、以下のpkgアイコンをダブルクリックするとインストーラーが起動します。

画面のメッセージに沿って進めます。使用許諾に同意する場合は「同意する」をクリックして進めます。

デフォルトの選択のまま「続ける」をクリックし、「インストール」をクリックします。パスワードが聞かれたらMacのユーザー名とパスワードを入力します。

サードパーティー製のソフトなので、個別に許可する必要があります。「セキュリティ環境設定を開く」をクリックし、「許可」をクリックします。

インストーラーに戻ると完了していると思います。PCの再起動が推奨されているので、一度再起動しておきます。

SSHFSのインストール

次に、ダウンロードしたもう一つのSSHFSをインストールしていきます。pkgファイルを開くとインストーラーが起動します。使用許諾に同意する場合は「同意する」をクリックして進めます。

「インストール」をクリックするとインストールが始まり、すぐに終了すると思います。

Raspberry Piのディレクトリを参照できるようにする (マウント)

ソフトの準備が整ったので、Raspberry PiのディレクトリをMac上のFinderやターミナルから見られるようにしてみましょう。この操作をマウントと呼びます。開発元の解説ページも参考にして下さい。

まずRaspberry Piのディレクトリをマウントする場所を用意しておく必要があります。今回はホームに「raspberrypi」という名前の空のディレクトリを作成しました。

マウントするには、ターミナルから以下の形式のコマンドを実行します。

sshfs username@server:/path-on-server/ ~/path-to-mount-point
usernameRaspberry Piのユーザー名
serverRaspberry PiのIPアドレス
path-on-serverRaspberry Pi側のディレクトリのパス
path-to-mount-pointMac側のディレクトリのパス
sshfsコマンドのパラメーター

以下は実際のコマンドの例です。最初に接続する際には確認が表示されるので「yes」と入力して許可します。Raspberry Piのユーザーのパスワードも聞かれるので、入力してEnterを押します。

sshfs pi@192.168.2.21:/home/pi ~/raspberrypi

なお、一度接続した後にRaspberry Piを再インストールすると鍵検証エラーで接続に失敗します。その場合はMac側ホームディレクトリの「.ssh/known_hosts」ファイルを削除することでリセットできます。

Finder上では、マウントしたディレクトリのアイコンが変化します。ターミナルやFinderからマウントしたディレクトリ(今回の例ではraspberrypi)に入って、Raspberry Piのファイルが見えていれば成功です!ローカルと同様に、ファイルをコピーしたり、移動することが可能です。

マウントしたディレクトリのアイコンが変化
中に入るとRaspberry Piのディレクトリが表示されている

マウントを解除するには、umountコマンドを使用します。

umount raspberrypi

PCでファイル共有設定 (Ubuntu)

Ubuntu18.04での手順を説明します。sshは最初からインストール済みです。ファイルマネージャーからRaspberry Piのディレクトリを参照できるようにします。まずファイルマネージャーを開きます。

以下の画像の通り、左の一覧から「他の場所」をクリックします。サーバーへ接続が表示されるので、「sftp://IPアドレス/パス」の形式で入力します。

IPアドレスは自分の環境のRaspberry PiのIPアドレスを入力して下さい。パスはpiユーザーのホームディレクトリとして、/home/piを設定しましたが、空白でも問題ありません。その場合はルートディレクトリが最初に開きます。

入力したら、「接続」をクリックします。

初めて接続する際は警告が出るので「とにかくログインする」をクリックします。

なお、一度接続した後にRaspberry Piを再インストールすると鍵検証エラーで接続に失敗します。その場合はUbuntu側ホームディレクトリの「.ssh/known_hosts」ファイルを削除することでリセットできます。

ファイルマネージャーにRaspberry Piのディレクトリの内容が表示されれば接続成功です!ローカルと同様に、ファイルをコピーしたり、移動することが可能です。

PCのファイル共有設定 (Linux Mint)

Linux Mint 19 Cinnamon Editionの手順を説明します。ファイルマネージャーからRaspberry Piのディレクトリを参照できるようにします。まずファイルマネージャーを開きます。

メニューの「ファイル -> サーバーに接続」をクリックします。

サーバに自分の環境のRaspberry PiのIPアドレスを入力して下さい。

タイプは「SSH」を選択します。

フォルダはpiユーザーのホームディレクトリとして、/home/piを設定しましたが、空白でも問題ありません。その場合はルートディレクトリが最初に開きます。

ユーザ情報には接続するユーザー名とパスワードを入力します。

「接続」をクリックします。

初めて接続する際は警告が出るので「とにかくログインする」をクリックします。

なお、一度接続した後にRaspberry Piを再インストールすると鍵検証エラーで接続に失敗します。その場合はLinux Mint側ホームディレクトリの「.ssh/known_hosts」ファイルを削除することでリセットできます。

ファイルマネージャーにRaspberry Piのディレクトリの内容が表示されれば接続成功です!ローカルと同様に、ファイルをコピーしたり、移動することが可能です。

SSHでリモート接続

最後に、SSHを使ってRaspberry Piにリモート接続する方法を解説します。これはターミナルからのコマンド操作になります。通信速度が限られている状況などでは、リモートデスクトップより都合が良いこともあります。リモートデスクトップを使いたい場合は、VNCを使う方法を参照して下さい。

それぞれのOSでターミナル(Shell)を開いて、「ssh user@IP」の形式でコマンドを実行します。userはRaspberry Piのユーザー名 (デフォルトはpi)、IPはRaspberry PiのIPアドレスです。実際の実行例は以下のようになります。

ssh pi@192.168.2.21

最初に接続する際は確認が出る場合があるので「yes」等を入力して許可します。Raspberry Piを再インストールした場合など、鍵検証エラーとなる場合は、ファイル共有と同様にknown_hostsファイルを削除してリセットします。

ターミナルが以下のような表示になれば、Raspberry Piに接続成功です。これ以降のコマンドはRaspberry Piで実行されます。切断する際はexitコマンドを実行します。

pi@raspberrypi: ~$ 

まとめ

Windows/Mac/UbuntuなどのPCからSSHでRaspberry Piに接続し、ファイル共有やコマンドによるリモート操作する方法を解説しました。離れた場所にあるRaspberry Piとファイルを簡単にやり取りできるので、活用の幅が広がります。

Mac/Ubuntuで紹介したマウントする方法であれば、Raspberry Pi上のファイルをローカルファイルと同じように開いたり編集することも可能です。

SSH/SFTPに対応したアプリを使えば、スマートフォンでもファイルを共有したり、リモート操作することができます。

VNCを利用してPCからRaspberry Piにリモート接続する手順や、Indoor Corgi製のホームIoT拡張基板赤外線通信を行う方法なども解説しているので、ぜひ参考にして下さい。

VNCでRaspberry Piにリモートデスクトップ接続 (Windows/Mac/Linux対応)

VNCを使って、PC (パソコン) からRaspberry Pi(ラズパイ)にリモート接続する手順、およびディスプレイなしでRaspberry Piを起動できるようにする方法について解説しています。PCからリモートでRaspberry Piを操作することができれば、運用の幅が広がって便利になります。

RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)

動作を自由にプログラミング可能な、Raspberry Pi/Zero(ラズパイ)用ホームIoT拡張ボードです。BME280温湿度気圧センサーとTSL2572明るさセンサー、赤外線送受信機能を搭載。IoT赤外線リモコンとして、温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、スマホ経由でテレビの操作をする、気温の記録、といった使い方が可能です。

PythonとpigpioでRaspberry Piの赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)

Pythonとpigpioを使ってRaspberry Piで赤外線の送受信を行う方法について解説しています。サンプルプログラムを用意しているので、簡単に受信、登録、送信動作をさせることができるほか、データ解析も可能です。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。