ディスプレイとキーボードを繋げた状態でRaspberryPiを操作するのもいいですが、
調べ物しながら操作するには、ディスプレイ・キーボードレスでほかのPCから操作した方が楽でしょう。
ここでは、SSHを用いてリモートからコンソールを操作する方法について説明します。
SSHの設定
Raspbianには「OpenSSH」がデフォルトでインストールされているので、設定の説明から入ります。
- SSHの設定ファイル「/etc/ssh/sshd_config」を以下のように編集する。
内容としては、「パスワード認証」を無効にし、強固な「公開鍵認証」を有効にしています。(変更) Port 22 ↓ Port (49152〜65535の任意のポート番号) PasswordAuthentication yes ↓ PasswordAuthentication no UsePAM yes ↓ UsePAM no (追加) AllowUsers pi Protocol 2 RSAAuthentication no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
(ポート番号を変える理由はセキュリティを向上するため)
(ポート番号は他のプログラムが利用しないなら1024〜49152のポート番号を利用しても良い) - 以下のコマンドで公開鍵・秘密鍵を生成する。
「Enter file in which to save the key」というのは鍵の保存場所を聞いていますが、デフォルトでOKなので何も入力せずに「Enter」を押しましょう。ssh-keygen
「passphrase(パスフレーズ)」は設定してもしなくてもどちらでもOK
公開鍵・秘密鍵は対になっており、片方を無くすともう一方も無駄になります
生成した公開鍵・秘密鍵は誰にも見せないように!
ネットワークを通して転送するときは暗号化を忘れずに! - 以下のコマンドで公開鍵ファイル「id_rsa.pub」を「authorized_keys」にリネームする。
cd .ssh mv id_rsa.pub authorized_keys
- 秘密鍵ファイル「id_rsa」をUSBメモリで操作するPCに移動する。
(移動の方法は暗号化されていればネットワーク上でも構いません)
USBメモリに「id_rsa」をコピーするには、まずUSBメモリをFAT32でフォーマットしておき、RaspberryPiに差し込みます。
そして、以下のコマンドでUSBメモリのデバイス名を確認します。
大体は、「sda1」・「sdb1」といった名前になっていると思います。sudo fdisk -l
次に、以下のコマンドでUSBメモリをマウント・コピーします。そしてUSBメモリーをRaspberryPiから取り出し、操作するPCに移動させてください。#マウントポイント作成 sudo mkdir /mnt/usbmem #USBメモリーをマウント sudo mount /dev/(デバイス名) /mnt/usbmem #秘密鍵をUSBメモリーに移動 sudo mv id_rsa /mnt/usbmem #USBメモリーをアンマウント sudo umount /dev/(デバイス名)
- 以下のコマンドで「.ssh」フォルダ・「authorized_keys」ファイルのパーミッションを変更する。
暗号鍵が入ったファイルは他のユーザーに見られては困るので、パーミッションを変更しておきます。chmod 600 authorized_keys cd chmod 700 .ssh
(OpenSSHの方でもパーミッションのチェックがあり、変更していない場合は利用できないようになっています。) - Raspi-Configを用いて、SSHを有効にする。
Raspi-Configを起動するコマンドは、1.2.で説明した通り、
です。sudo raspi-config
Raspi-Configを起動したら、「Advanced Options」→「A4 SSH」→「Enable」を選択します。
デフォルトで有効になってると思いますが念のため。 - 以下のコマンドで、SSHデーモンに設定を読み直しさせます。
sudo /etc/init.d/ssh reload
- 以下のコマンドで、iptablesの設定を書き換え、SSHの通信が通るようにする。
2.5.の通り、iptablesの設定の変更後は以下のコマンドで設定を記録しておくこと。sudo iptables -A INPUT -j ACCEPT -s (SSHで接続するネットワークアドレス)/(サブネットマスク) --protocol tcp --destination-port (設定したポート番号)
sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 外部からログインする。
取り出した暗号鍵ファイル「id_rsa」を用いてSSHでログインしてみましょう。
個人的には、Windowsの場合は「Tera Term」がおすすめです。
Macは詳しくないので、ネット等で「SSHクライアント」を調べてください。(^-^;
各ソフトでのログイン方法はそれぞれのマニュアルを参照してください。