Windows/Mac/UbuntuなどのPCからSSHでRaspberry Pi(ラズパイ)に接続し、ファイル共有やコマンドによるリモート操作する方法を解説しています。離れた場所にあるRaspberry Piとファイルを簡単にやり取りできるので、活用の幅が広がります。Raspberry Piのログファイルをダウンロードしたり、PCの音楽や動画をRaspberry Piへアップロードすることもできます。
更新日 : 2024年9月28日SSHとは
SSHとは、PCやRaspberry Piなどのデバイスの間で、ネットワークを介して安全に通信する仕組みのことです。SSHは主にターミナルでコマンドで操作することに使われる他、ファイルのやり取りもサポートしています。この機能はSFTPと呼ばれます。
本記事では、SSHを使用して、Raspberry Piのファイルを他のPCから参照できるようにしたいと思います。
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
username | Raspberry Piのユーザー名 |
server | Raspberry PiのIPアドレス |
path-on-server | Raspberry Pi側のディレクトリのパス |
path-to-mount-point | Mac側のディレクトリのパス |
以下は実際のコマンドの例です。最初に接続する際には確認が表示されるので「yes」と入力して許可します。Raspberry Piのユーザーのパスワードも聞かれるので、入力してEnterを押します。
sshfs pi@192.168.2.21:/home/pi ~/raspberrypi
なお、一度接続した後にRaspberry Piを再インストールすると鍵検証エラーで接続に失敗します。その場合はMac側ホームディレクトリの「.ssh/known_hosts」ファイルを削除することでリセットできます。
Finder上では、マウントしたディレクトリのアイコンが変化します。ターミナルやFinderからマウントしたディレクトリ(今回の例ではraspberrypi)に入って、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を操作することができれば、運用の幅が広がって便利になります。
指定時刻にラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)
RPZ-PowerMGRを使って、指定時刻にRaspberry Pi(ラズパイ)やJetson Nanoの電源ON/OFFする方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。
ラズパイで赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)
Pythonとpigpioを使ってRaspberry Piで赤外線の送受信を行う方法について解説しています。サンプルプログラムを用意しているので、簡単に受信、登録、送信動作をさせることができるほか、データ解析も可能です。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。
定期撮影ラズパイカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)
Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。