UECS Piファームウエアを自分用にカストマイズする④
UECS Piのカストマイズシリーズの最後にSSHを使えるようにする方法を紹介します。
SSHは分散系システムのエンジニアでないとなじみがないかもしれませんが、分散系開発ではよく使われるツールです。Raspberry Piは個人で使うことが多いと思いますが、UNIX OSは本来サーバーとしても使われるので複数ユーザーで別の端末から操作できるようになっています。SSHを使えば自分がいつも使っているPCからRaspberry Piを操作することができます。
これまで紹介したUECS Piファームウエアのカストマイズでは、ネットワーク構成のファイルなどをテキストエディタで編集しました。複数の環境でUECS Piを運用する場合に何かの理由でSDカードを交換することがあると思いますが、いちいちネットワーク定義ファイルを手で書き換えるのは面倒ですし、間違いも起こりがちです。実績のあるファイルをPCに保管して必要な都度置き換える手順をとれば運用しやすくなります。
SSHのクライアントソフトを使えば、Raspberry PiのSDカードの中身をPCの1つのドライブのようなイメージで操作することができます。
SSHは分散系システムのエンジニアでないとなじみがないかもしれませんが、分散系開発ではよく使われるツールです。Raspberry Piは個人で使うことが多いと思いますが、UNIX OSは本来サーバーとしても使われるので複数ユーザーで別の端末から操作できるようになっています。SSHを使えば自分がいつも使っているPCからRaspberry Piを操作することができます。
これまで紹介したUECS Piファームウエアのカストマイズでは、ネットワーク構成のファイルなどをテキストエディタで編集しました。複数の環境でUECS Piを運用する場合に何かの理由でSDカードを交換することがあると思いますが、いちいちネットワーク定義ファイルを手で書き換えるのは面倒ですし、間違いも起こりがちです。実績のあるファイルをPCに保管して必要な都度置き換える手順をとれば運用しやすくなります。
SSHのクライアントソフトを使えば、Raspberry PiのSDカードの中身をPCの1つのドライブのようなイメージで操作することができます。
なお、この記事ではPCで使用するOSはWindowsを前提にしています。MACの方はPC側のソフトをそれようにしてください。
何ができるようになるか
下記の写真はWinSCPというクライアントソフトを使ってRaspberry PiのSDカードの/etc/networkディレクトリを表示したものです。右がRaspberry Piのディレクトリで左がPC側のフォルダーです。
WindowsのWinSCPでRaspberry Piのディレクトリーを表示
また、ファイルをダブルクリックするとWindowsのエディターでファイルを編集できます。ネットワークで検索したプログラムや定義内容もコピペで編集できるので便利です。エディターはWinSCPの設定で好きなものを追加できます。
Debianのファイル構造やコマンドに慣れないとRaspberry PiのCUI画面でファイルを探したり編集したりするのは大変なのですが、WinSCPを使うとファイルの操作はかなりのことができるので助かります。
Raspberry PiでのSSHの有効化
さて、SSHが使えるようにRaspberry Piの設定をします。まず、raspi-configでSSH有効にします。(raspi-configを使えるようにするには、UECS Piファームウエアを自分用にカストマイズする②を参照してください)
SSHを選択します。
SSHを有効化するかと聞いてくるのでYesを選択します。選択はタブキーで。エンターキーで設定を実行しますが、一瞬raspi-configの画面が消えますが、また表示されます。
有効化されたという確認画面が出ますのでOKしraspi-configのメニュー画面に戻ります。設定を有効にするにはrebootします。
SSHでrootユーザーを使えるようにする
SSHを有効にしましたが、このままではrootユーザーはSSHからログインできません。rootユーザーは権限が強いのでディフォルトではリモートからログインできないようになっています。しかし、ネットワーク設定などのファイルを編集するときにはrootユーザーの権限が必要なのでリモートからログインできるようにします。(本来であれば別のユーザーを作って権限を与えるべきなのですが、ここでは省略します)SSHからrootユーザーでログインできるようにするにはSSHの定義ファイル/etc/ssh/sshd_configを編集します。下記のコマンドを入力します。
nano /etc/ssh/sshd_config
反転している行を探してPermitRootLoginをyesに変更します。保存してrebootします。SSHをActiveにする
設定は終わったのですが、Raspberry Piを起動したときにはSSHのサービスはActiveではありません。
セキュリティ対策のため自動的にはActiveにしないのです。SSHの通信は暗号化されていますが、ユーザーやパスワードが破られると外部から操作できるのでハードルは高くしているのです。自動的にActiveにする方法もありますが、ここでは割愛します。セキュリティのためにはパスワードも変更しておく方がいいですね。
さてSSHのサービスをActiveにするには、下記のコマンドを実行します。
/etc/init.d/ssh start
SSHサービスの状態を確認するには。
/etc/init.d/ssh status
緑のactive (runnning)が表示されればOKです。
SSHサービスのActiveと状態表示例
WinSCPのインストール、ログイン
今度はPC側のソフトの準備です。WinSCPはオープンソースソフトでWinSCP公式サイトや窓の杜から無料(寄付歓迎)でダウンロードできます。(マイクロソフトストアから検索すると\575となっている)使ってみて感動した方は寄付してください。
ダウンロードして画面に従ってインストールすればOKです。
WinSCPを起動した後のログイン画面
導入後、WinSCPを起動すると上の画面が表示されます。ホスト名にはRaspberry PiのIPアドレスを入力して、ポート番号は22のまま、ユーザー名、パスワードを入力してログインのボタンを押します。うまくログインできれば冒頭の画面が表示されます。
Windows Terminalのインストール、ログイン
このブログの作成するときにRaspberry Piの画面イメージを張り付けていますが、それはWindowsのターミナルソフトからPowerShellを起動してRaspberry PiのSSHにログインしています。Windowsで画面イメージを取った方が簡単だからです。
ネットではWindows TerminalはWindows Power Shellやコマンドプロンプトに同梱されているという記述があり、そのままでも使えるのかもしれません。私はWindows Terminalの導入をしてしまったので、確認ができません。Windowsのバージョンにもよると思いますので、もしうまくいかなかったらWindows Terminalの公式サイトから導入してみてください。
Raspberry Pi側でSSHをActiveにした後、Windows側でコマンドプロンプト、Windows Power ShellまたはWindows Terminalどれかを起動してください。この例ではWindows Terminalを起動しています。起動したら下記のコマンドを入力してください。
ssh {ユーザー}@{ホスト名}
この例では、
ssh root@192.168.0.71
を入力しています。パスワードを聞いてきますので入力します。ログインできればRaspberry Piのコマンドプロンプトが表示されます。WindowタイトルもOpenSSH clientに変りました。
*「UECS Pi」はアルスプラウト株式会社が提供する汎用DIY環境制御ソフトウェアです。https://www.arsprout.co.jp/products/others/uecs-pi/
*「UECS Pi」はアルスプラウト株式会社が提供する汎用DIY環境制御ソフトウェアです。https://www.arsprout.co.jp/products/others/uecs-pi/
*「UECS」は農業用のセンサー機器や制御機器用の通信・動作の共通仕様です。UECS研究会が公開しています。https://www.uecs.jp/outline/outline-index
関連リンク:EzITコンサルティング www.ezitc.dev
コメント
コメントを投稿