👋

ラズベリーパイにリモート接続設定

2022/05/03に公開

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接続する場合はラズパイをデスクトップモードで起動する必要があるとのこと
以下をリンク先を参考にする。
https://taku-info.com/raspi-cannotvncviewer/

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は高機能
https://atmarkit.itmedia.co.jp/ait/articles/0606/27/news135_2.html

設定手順:
[windos PC]
・WinSCP(SFTPクライアント) のインストール
・WinSCP で接続先 VNC Server のIPアドレスを指定し接続
・ID:pi、PW:***

以上でファイル共有環境のセットアップは完了

3. SSH をパスワード認証から公開鍵認証へ変更

ざっくり流れ

  1. SSHクライアント側で鍵ペアの作成
コマンド

以下コマンドでSSHの鍵ペアを作成する。
ssh-keygen
※Linux,windows共通
※実行時に秘密鍵で使うパスフレーズを聞かれるが、設定無しでもOK
 設定すると、よりセキュリティを強化できる。

  1. 作成した公開鍵をSSHサーバ側に登録
コマンド

SSHクライアント側で以下コマンドを実行し、SSHサーバのauthorized_keysファイルに公開鍵を登録する。

[windowsクライアントの場合(PowerShell)]
Linuxはコマンド一個で完結するが、Windowsだとめんどくさい。

  1. WinSCPを使って、公開鍵をSSHサーバに転送
  2. 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メモリ等を使って物理的に交換鍵をコピーすることも可能。

  1. SSHでSSHサーバにログイン確認
コマンド

sshコマンドを使ってリモートホストにログインを行う。
ssh pi@192.168.1.20

※Linux,windows共通

  1. SSHサーバからログアウト
コマンド

logoutコマンドもしくは、Ctrl+Dでログアウト
※Linux,windows共通

以上でSSH接続の公開鍵認証化は完了

Discussion