初めてラズパイのセットアップをするときに躓いたところを分かりやすく解決する方法(筆者はラズパイにおいてGUIなんていらない教なので注意)
OSインストール
- Raspberry Pi ImagerでDevice選択
- CHOOSE OSを選択(
ぜひRaspberry Pi OS Lite(64-bit)(LiteはCUI版)を選択しよう) - CHOOSE STORAGEでSDカードもしくはUSBを選択
- NEXTを選択
- EDIT SETTINGを選択
-
Set hostname:
にhostnameを入力(画像ではraspbrrypi
と入力) -
Set username and password
にUsername
とPassword
を入力(画像ではpi
と入力) - 無線LANに接続する場合は
Configure wireless LAN
のSSID
とpassword
を入力(画像ではテザリング予定のためXperia 5
) -
Set locale settings
をAsia/Tokyo
に変更 - SERVICEタブに移動
-
Enable SSH
にチェックを入れる -
SAVE
をクリックして閉じる -
YES
をクリックしてインストール開始
初期設定
- Windows等のアクセス元のコマンドプロンプトからssh
ssh pi@raspberrypi.local
確認出来たらok
今後はこのコマンドプロンプトで操作
- rootパスワードを設定
sudo passwd root
新しいパスワードを設定後確認
su
- アップデートの確認・更新
sudo apt update && sudo apt full-upgrade -y
を実行、sudo reboot
でリブート
- vimの再インストール
sudo apt-get --purge remove vim-common vim-tiny
sudo apt-get install vim
- ipアドレス固定
/etc/dhcpd.conf
を編集
sudo vi /etc/dhcpcd.conf
i
を押して以下の追加を行う
# wifiの場合.有線LANの場合はwlan0をeth0にする.
interface wlan0
# 固定したいIP,他に割り当てられていないものにする.
static ip_address=192.168.xxx.yyy/24
# ルーターのIPアドレス.(だいたいxxx.1)
static routers=192.168.xxx.1
# ↑と同じでok
static domain_name_servers=192.168.xxx.1
:wq
で保存
sudo reboot
でリブート
ifconfig
で確認
ファイアウォールの設定
ufw
をインストール
sudo apt-get install ufw
ufw
がinactiveになっていることを確認する
sudo systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2023-01-03 15:15:28 JST; 3s ago
Docs: man:ufw(8)
Process: 15328 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Process: 15754 ExecStop=/lib/ufw/ufw-init stop (code=exited, status=0/SUCCESS)
Main PID: 15328 (code=exited, status=0/SUCCESS)
CPU: 15ms
自動起動設定を確認
デフォルトはenable
sudo systemctl is-enabled ufw
受信パケットを全て遮断.
公開するポートだけを開ける.
sudo ufw default deny incoming
送信パケットは全て許可
sudo ufw default allow outgoing
ssh(22)ポートのみ許可
sudo ufw allow ssh
プロセスを起動
sudo systemctl start ufw
確認
sudo systemctl status ufw
有効にする
sudo ufw enable
設定を確認する
sudo ufw status verbose
VSCodeからssh
- ホストに接続する
- 新規SSHホストを追加する
- 自分が設定したユーザーネーム@ipアドレスを入力
- Linuxを選択
ssh時に以下のエラーが出たら
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for pi2.local has changed,
and the key for the corresponding IP address 240d:1a:134:6c00:77fc:41d8:6df2:b2cd
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:X+50dpXZ9SrwxMu11gkeCKSK7/cPDrsQfiLUAzS/LbA.
Please contact your system administrator.
Add correct host key in C:\\Users\\ryosh/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\ryosh/.ssh/known_hosts:19
ECDSA host key for pi2.local has changed and you have requested strict checking.
Host key verification failed.
以下のコマンドを実行
C:\Users\user>ssh-keygen -R raspberrypi.local
Gitインストール
sudo apt-get install git
git config --global user.name "username"
git config --global user.email "useremail"
VPN Server化
WireGuardをインストール
curl -L https://install.pivpn.io | bash
ちょっと待つ
okでEnter
okでEnter
YesでEnter
okでEnter
Userを選択してEnter
WireGuardを選択してEnter
51820portを使用していないならEnter使用しているなら他のportを指定してEnter
YesでEnter
お好みのDNS Providerを選択してEnter(今回はGoogleを選択)
グローバルIPかduckdnsなどのpublic DNSを持っているならそちらを選択
okでEnter
okでEnter
Yesを選択してEnter
okでEnter
Yesを選択してEnter
okを選択してReboot
新しくクライアントを作成
test@test:~ $ pivpn add
/etc/pivpn/wireguard/setupVars.conf: line 8: 192.168.1.81/24: No such file or directory
Enter a Name for the Client: test
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! test.conf successfully created!
::: test.conf was copied to /home/test1/configs for easytransfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================
./config にtest.confができているのでそれをクライアント側にダウンロードする.
クライアント側PCにWireGuardをインストール
Add Tunnelからtest.confを選択しActivateを押すと接続できる.
-qrでQRコードをコマンドライン上で表示してくれるため,スマホからVPNしたい場合は活用できる.
test1@test1:~ $ pivpn -qr
:: Client list ::
1) test
Please enter the Index/Name of the Client to show: 1
::: Showing client test below
=====================================================================
pyenvをインストール
必要らしいパッケージをインストール(本当に必要かはわからん)
sudo apt install build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev \
libreadline-dev libsqlite3-dev libopencv-dev tk-dev git
Git Hubよりクローン
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
.bashrc
にpyenvの情報を追記
echo '' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
source ~/.bashrc
もろもろ確認&インストール
pyenv -v
pyenv install 3.10
pyenv global 3.10
pyenv local 3.10
pyenv versions
NAS化
⇓以下の様に外付けHDD等をsambaで共有する
USB接続できているか確認
sudo fdisk -l
Disk /dev/sda: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
のような感じで新しく接続したデバイスの容量が認識できているか確認
必要ならフォーマットを行う
sudo mkfs.ext4 /dev/sdb1
UUID
の確認
sudo blkid
確認したデバイスのUUID
をどこかにメモっておく
マウントしたい場所にフォルダを作る
例として/mnt/main
フォルダを作る(mainは適宜変える)
sudo mkdir /mnt/main/
権限を渡す
sudo chmod 777 /mnt/main/
sambaのインストール
sudo apt install samba
smb.confの設定
sudo vi /etc/samba/smb.conf
以下を末尾に加える(※username等は適宜書き換える※)
[main] # 表示される名前
comment = main
path = /mnt/main/
force user = username
guest ok = no
create mask = 0777
directory mask = 0777
read only = no
writable = yes
browsable = yes
public = no
パスワードの設定
sudo smbpasswd -a ユーザー名
自動マウント設定
sudo vi /etc/fstab
以下を末尾に加える(さっきメモったUUID
をUUID=
の後ろにコピペ)
UUID=117c7329-80df-4ee0-913d-1076b1b00715 /mnt/main ext4 defaults,nofail 0 2
port開放
sudo ufw allow 445
sudo ufw allow 139
再起動
sudo reboot
samba再起動&有効化
sudo systemctl restart smbd
sudo systemctl enable smbd
Windowsからアクセス
エクスプローラーを開いて黄色で囲んでいるところをクリックしてAdd a network location
を選択
テキトーにNextを選択していって
この画面になったら\\ipアドレス\main
を入力
接続できたらNextをクリックして接続完了