下記の内容は,色々と試行錯誤したうち,成功したと思われる結果のみを挙げています. そのため,下記の内容通りに行っても期待される結果が得られない場合もあると思います. 従って,このページの内容については私の保証するところではありませんので,各自の責任でお願いします.
更新情報2018. 6. 8 記録開始
■キット
Raspberry Pi3 Model B コンプリートスターターキット (Industry 16G)
Physical Computing Lab
→ Amazon
OS: Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l GNU/Linux
user: pi
■リモートマシン
OS: Debian Stretch
user: hoge
■OSのダウンロード&インストール
上記のキットには書き込み済みのSDカードが付属しますが、後々のためOSの書き込み手順も確認しておきます。
本家からダウンロードします。
https://www.raspberrypi.org/downloads/raspbian/
特にこれといったターゲットがないので、スタンダードなdebian stretch (9)をベースにした次を選択する。
RASPBIAN STRETCH WITH DESKTOP
Version:April 2018
Release date:2018-04-18
Kernel version:4.14
zipを展開すると約5GBのイメージでした。
2018-04-18-raspbian-stretch.img
まだ慣れていないのでDESKTOPを選んだけど、
ヘッドレス or/and サーバ用途ならLITEで充分でしょう。
■イメージをSDカードに書き込む
hoge $ sudo dd bs=4M if=2018-04-18-raspbian-stretch.img of=/dev/mmcblk0
hoge $ sync
約3分ほどで書き込みました。
ちなみに、書き込み後のsdカードのイメージは次のようでした。
■起動
sdカードを挿入してRaspberriPI3を起動する。
次のデフォルトのアカウントで自動ログインしている。
ID: pi
PW: raspberry
バージョンを確認する。
pi $ uname -a
Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l GNU/Linux
■リモートマシンからアクセス
次でipアドレスを確認する。
pi $ ip a
wiredなので 2: eth0: ...のinetの項目を確認する
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:37:de:45 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.21/24 brd 192.168.1.255 scope global eth0
...
sshdを開始する。
pi $ sudo service ssh start
次でリモートマシンからssh(パスワードでログイン)する。
hoge $ ssh pi@192.168.1.21
The authenticity of host '192.168.1.21 (192.168.1.21)' can't be established.
ECDSA key fingerprint is SHA256:M8Zdtqb0l5Q/e3RI9K3m2YJHIWNdnNPhR9TGC61ENU8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.21' (ECDSA) to the list of known hosts.
pi@192.168.1.21's password: raspberry
ログインできました。
■ssh接続を公開鍵暗号にする
次で公開鍵を作成する。
pi $ ssh-keygen -t rsa
ここでパスフレーズを設定する。
それ以外の項目は、とりあえず[enter]で充分。
サーバ側で認識できるように公開鍵をリネームする。
pi $ mv .ssh/id_rsa.pub .ssh/authorized_keys
パスワードのみの接続を禁止する設定を行う。
pi $ sudo vi /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no ← 追記
設定を有効化するために、sshdを再起動する。
pi $ sudo service ssh restart
一度接続を切って、確認する。
pi $ exit
hoge $ ssh pi@192.168.1.21
Permission denied (publickey). ← 鍵が指定されていないので入れない。
秘密鍵id_rsaをUSBメモリなどでhogeにコピーして、次のように秘密鍵で接続する。
hoge $ ssh -i id_ras pi@192.168.1.21
Enter passphrase for key '.ssh/pi/id_rsa': パスフレーズ
ログインできました。
■sshfsを使ってファイル共有
せっかくssh使えるようになったので、sshfsを使う。
リモートマシンにディレクトリpiを作成し、Raspberry PIのPublicディレクトリをマウントする。
# sambaは面倒くさいので可能ならば使わない方向で。
hoge $ sudo apt install sshfs
hoge $ cd ~/
hoge $ mkdir pi
hoge $ /usr/bin/sshfs -o ssh_command="ssh -i id_rsa" pi@192.168.1.24:/home/pi/Public/ ~/pi
アンマウントは次で。
hoge $ fusermount -u /home/hoge/pi
マウント時のシンボリックリンクも有効にする場合は、次のように。
hoge $ /usr/bin/sshfs -o follow_symlinks -o ssh_command="ssh -i id_rsa" pi@192.168.1.24:/home/pi/Public/ ~/pi
■sambaを使ってファイル共有
# 以下は不要な設定もあるかも
1. sambaをインストールする
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install samba samba-common samba-libs
2. 設定を編集する。
$ sudo vi /etc/samba/smb.cnf
[global]セクションの最初に次を追加
dos charset = CP932
unix charset = UTF-8
guest account = pi
[global]セクションに次を追加
# for Windows 10 KB4056892
min protocol = SMB2
max protocol = SMB2
最後に共有するディレクトリを追加
[pi] ← この名前でWindowsから見える
comment = Raspberry Pi
path = /home/pi/Public ← このディレクトリが公開される
guest ok = yes
read only = no
public = yes
browsable = yes
force user = pi ← このユーザとして操作する
3. 変更を有効化するため、sambaを再起動する。
$ sudo service smdb restart
$ sudo service nmdb restart
4. Windows10からExplorerで「\\raspberrypi」または「\\192.168.1.24」で接続する。
piが表示され、開くと「/home/pi/Public」の中身が見える。