ラズベリーパイにリモート接続設定
1. VNC インストール
目的:同一LANのWindows PCからraspi にリモートデスクトップ接続できるようにする
理由:ディスプレイのHDMIケーブル、キーボード等の差し替えがめんどいから
VNCとは
Virtual Network Computing
リモート操作するためのソフトウェアの一種。
リモート操作される側でVNCサーバを実行し
ネットワークを介して操作する側でVNC Viewer(クライアント)を使って
接続しリモート操作を行う。
設定手順:
[ルーター(DHCPサーバ)]
・WindosPCからリモートデスクトップ接続先のIPアドレスを固定しておきたいので、ルータ側で、raspiに払い出すIPアドレスを固定化させる。(MACアドレスと払い出しIPアドレスを紐付け)
[raspi]
・スタートメニューのraspi設定から、VNCを有効化する。
[windows PC]
・VNC Viewer のインストール
・VNC Viewer で接続先 VNC Server のIPアドレスを指定し接続
以上でリモート接続環境のセットアップは完了
VNC での接続時に、cannot currently show the desktop vnc のエラーが出た場合
HDMIを繋がずにVNC接続する場合はラズパイをデスクトップモードで起動する必要があるとのこと
以下をリンク先を参考にする。
VNC での接続時に、ディスプレイ出力の解像度を調整したい場合
以下をリンク先を参考にする。
2. SSH インストール
目的:同一LANのWindows PCからraspi にSSHでリモート接続できるようにする
理由:CLI画面に楽にいけるようにするため
SSHとは
Secure Shell
デバイス間でネットワークを介して安全に通信する仕組みのこと
主にターミナルコマンドで操作することに使われる他、ファイルのやりとりもできる。
この機能はSFTPと呼ばれる。
設定手順:
[raspi]
・スタートメニューのraspi設定から、SSHを有効化する。
[windows PC]
・Teraterm(SSHクライアント) のインストール
・Teraterm で接続先 VNC Server のIPアドレスを指定し接続
・ID:pi、PW:***
以上でSSH接続環境のセットアップは完了
raspiとwindows PC間でファイル共有するための設定もやってみる
WinSCPとは
Windows SCP
Windowsで使える代表的なSSHを使ったファイル転送のクライアントソフト
scp と sftp 両方に対応。
scp と sftp の違いは、以下記事を参照
一言で言うと、SCPは軽快、SFTPは高機能
設定手順:
[windos PC]
・WinSCP(SFTPクライアント) のインストール
・WinSCP で接続先 VNC Server のIPアドレスを指定し接続
・ID:pi、PW:***
以上でファイル共有環境のセットアップは完了
3. SSH をパスワード認証から公開鍵認証へ変更
ざっくり流れ
- SSHクライアント側で鍵ペアの作成
コマンド
以下コマンドでSSHの鍵ペアを作成する。
ssh-keygen
※Linux,windows共通
※実行時に秘密鍵で使うパスフレーズを聞かれるが、設定無しでもOK
設定すると、よりセキュリティを強化できる。
- 作成した公開鍵をSSHサーバ側に登録
コマンド
SSHクライアント側で以下コマンドを実行し、SSHサーバのauthorized_keysファイルに公開鍵を登録する。
[windowsクライアントの場合(PowerShell)]
Linuxはコマンド一個で完結するが、Windowsだとめんどくさい。
- WinSCPを使って、公開鍵をSSHサーバに転送
- SSHサーバ側で以下コマンドを実行
mkdir .ssh
chmod 700 .ssh
cd .ssh
cat id_dsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm id_dsa.pub
[Linuxクライアントの場合]
ssh-copy-id pi@192.168.1.20
※登録するためには、パスワード方式等ほかの方法でSSHサーバにアクセスできる必要がある。
※192.168.1.20はSSHサーバのIPアドレス。
※USBメモリ等を使って物理的に交換鍵をコピーすることも可能。
- SSHでSSHサーバにログイン確認
コマンド
sshコマンドを使ってリモートホストにログインを行う。
ssh pi@192.168.1.20
※Linux,windows共通
- SSHサーバからログアウト
コマンド
logoutコマンドもしくは、Ctrl+Dでログアウト
※Linux,windows共通
以上でSSH接続の公開鍵認証化は完了
Discussion