註:筆者居住於韓國,部分內容包含韓國特有的背景。
在折騰樹莓派或者家用伺服器時,意外(?)地經常需要把伺服器初始化重來。
可能是因為設定錯了導致某些東西跑不起來,或者是裝了一堆連自己都不記得裝過什麼的東西。
於是每次重置樹莓派後都有一套固定要做的工作,
但問題是每次都是隔了很久才會再初始化一次,等真要做的時候早就忘得差不多了,每次設定都得在Google裡翻半天。所以乾脆整理在這裡。
以下內容以Raspberry Pi + Ubuntu Server為基準。初始登入密碼是 ubuntu。
1. 開啟SSH存取
- 拿HDMI線接上、再接鍵盤真的非常麻煩。
- 在燒錄開機磁碟時,建立一個名為
ssh(無副檔名)的空檔案,開機時就會啟用SSH存取。(預設是關閉的) - 用網路線把樹莓派接到路由器上,從路由器管理頁面拿到IP後SSH連過去。hostname會是
ubuntu。
2. SSH登入設定
- 為了能用SSH金鑰登入,把自己的公鑰加到
~/.ssh/authorized_keys檔案裡。 - 如果沒有SSH金鑰,可以在Google搜尋「SSH 金鑰 登入」之類的關鍵字跟著做!
3. 停用密碼登入
- 如果只在內網開放的樹莓派,一般沒什麼大問題……但只要有SSH Key,從安全性角度建議盡量關掉密碼登入。
- 打開
/etc/ssh/sshd_config,設定PasswordAuthentication no。 - 再打開
/etc/ssh/sshd_config.d/50-cloud-init.conf,同樣設定PasswordAuthentication no。 - 然後用
sudo systemctl reload sshd重啟SSH伺服器。
4. 連接Wi-Fi(選擇性)
- 如果一直用網路線就可以跳過。我嫌網路線讓房間顯得很亂,所以會設定一下Wi-Fi。
- 打開
/etc/netplan/50-cloud-init.yaml檔案。(沒有的話就新建。) - 把下面的檔案複製貼上進去。下面的設定檔是SSID(Wi-Fi名稱) = lemon、密碼為 lemon1234 的範例。
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"lemon":
password: "lemon1234"
version: 25. 設定Hostname
- SSH視窗裡看不到自己目前在操作哪台機器會讓人不太安心……
- 輸入
sudo hostnamectl set-hostname <主機名稱>把hostname也改成容易辨識的名字。
6. 重新開機
sudo reboot- 透過無線網路重新連線時內部IP可能會變,連不上的話就看路由器頁面更新一下內部IP。

Comments