網路設定

本步驟旨在於連接網際網路,以利後續更新及軟體安裝之進行。

準備材料:已完成首次開機設定之樹莓派及其周邊設備、可用之無線網路熱點或有線網路

查看網路介面及狀態

先查看網路介面,輸入 ip addr ,應該可以看到類似於以下之畫面,可知樹莓派有三網路介面, lo 為loop介面、 eth0 為連接有線網路之介面、 wlan0 則為連接無線網路之介面。(註:下圖為以連接系統之畫面,未連接者應較為簡短,且應在每一介面之首行顯示「state DOWN」)

sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ubuntu@ubuntu:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether dc:a6:32:9f:fc:8b brd ff:ff:ff:ff:ff:ff
inet 10.10.8.110/24 brd 10.10.8.255 scope global dynamic eth0
valid_lft 78753sec preferred_lft 78753sec
inet6 fe80::dea6:32ff:fe9f:fc8b/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether dc:a6:32:9f:fc:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.10.1/24 brd 192.168.10.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::dea6:32ff:fe9f:fc8c/64 scope link
valid_lft forever preferred_lft forever

有線或無線網路設定 (擇一即可)

sudo 指令為以超級使用者權限執行,需輸入當前管理者帳戶密碼進行驗證,驗證後可保留一段時間不需重複驗證,逾時後便需再次驗證。

設定有線網路

有線網路預設以自動進行設定,並自動取得ip位址。若要進行變更,則輸入以下文字,再依據螢幕文字提示輸入帳戶密碼進行超級使用者驗證

sh
1
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

於開啟的新文件中添加如下文字

plaintext
1
network: {config: disabled}

按下 ctrl + X 鍵,之後按下 Y 鍵選擇保存,再按下 Enter
再輸入如下指令(05-custom.yaml 檔案名稱可自行修改,格式為「數字-文字.yaml」)

sh
1
sudo nano /etc/netplan/05-custom.yaml

於新配置文件中填入如下文字,並依照網路環境修改相應參數(注意yaml對於空格數及排版要求十分嚴格)

plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
network:
ethernets:
eth0:
dhcp4: false
addresses:
- 192.168.0.101/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
optional: true
version: 2

可修改部分解釋
eth0:介面名稱,可由 ip addr 取得。
dhcp4:是否使用 ipv4 之 dhcp ,若設置成 true 則自動取得 ip 位址,且須刪去 addresses 與 nameservers 區塊之設定。
addresses: 設定本機 ip 位址,上例為 192.168.0.101,24 表子網遮罩為 255.255.255.0。
gateway4: 設定網關位址
nameservers:設定 dns 伺服器,上例 addresses 下列出之兩者為 Google 之兩 dns 伺服器。
optional: 是否須強制完成連線,若設為 false,則在開機時會試圖連線至成功或嘗試逾時為止。
詳細配置說明請參考 https://netplan.io/examples

設定無線網路

輸入如下指令(05-custom.yaml檔案名稱可自行修改,格式為「數字-文字.yaml」),並依據螢幕文字提示輸入帳戶密碼進行超級使用者驗證

sh
1
sudo nano /etc/netplan/05-custom.yaml

於新配置文件中填入如下文字,並依照網路環境修改相應參數

plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
network:
wifis:
wlan0:
dhcp4: false
addresses:
- 192.168.0.101/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
access-points:
"WiFi SSID":
password: "WiFi密碼"
optional: true
version: 2

可修改部分解釋
eth0、dhcp4、addresses、gateway4、nameservers、optional: 請參照步驟 2.。
access-points: WiFi SSID 部分填入熱點名稱,而 WiFi 密碼 則填入熱點密碼。
詳細配置說明請參考 https://netplan.io/examples

重新啟動

輸入sudo reboot並視情況輸入密碼以重新開機
登入系統後,再次輸入 ip addr 應該可見設定之介面首行顯示 state UP 並於底下詳細資料中可見取得之 ip 位址。

SSH 連線設定

本步驟旨在於設定遠端連線(SSH)服務,以利異地進行佈署和操作。

準備材料:已完成網路設定之樹莓派及其周邊設備、個人電腦(須連上網路)

基本連線測試

於個人電腦上開啟終端機

  • Windows 系統為「PowerShell」或「命令提示字符」,另外 Windows 10 系統亦可於微軟商店下載 Windows Terminal 進行使用。
  • Mac 系統可由系統工具或 Spotlight 找到終端機。
  • Linux 系統請開啟相應之命令行工具。

輸入 ssh ubuntu@<ip address>,並將 <ip address> 替換為網路設定步驟樹梅派之 ip 位址,範例如下

sh
1
C:\Users\user> ssh [email protected]

註:C:\Users\user> 為 Windows 系統命令提示字符當前目錄之開頭,指令由此段文字之後開始。
若連線成功,則應顯示如下之提示,並於此時輸入帳戶之密碼,按下 Enter

sh
1
[email protected]'s password:

若登入成功,則應看到熟悉之起始畫面

sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1008-raspi aarch64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

System information as of Fri Jul 10 07:24:58 UTC 2020

System load: 0.0 Processes: 131
Usage of /: 8.5% of 29.17GB Users logged in: 0
Memory usage: 9% IPv4 address for eth0: 10.10.8.110
Swap usage: 0% IPv4 address for wlan0: 192.168.10.1
Temperature: 47.2 C

* "If you've been waiting for the perfect Kubernetes dev solution for
macOS, the wait is over. Learn how to install Microk8s on macOS."

https://www.techrepublic.com/article/how-to-install-microk8s-on-macos/

52 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


*** System restart required ***
Last login: Fri Jul 10 06:11:02 2020 from 192.168.10.101
ubuntu@ubuntu:~$

此時已經可知道 SSH 連線正常運作,未來便可以使用此方式進行遠端操作。
輸入指令 logout 先登出系統(註:輸入指令之方式為輸入指令文字,並按下 Enter 鍵)

使用金鑰進行登入

於終端機輸入如下指令,為了操作方便,本步驟所有提示皆按 Enter 即可

sh
1
C:\Users\user> ssh-keygen -t ed25519

詳細操作方式可參考官方文件 https://www.ssh.com/ssh/keygen/

將上一步所產生之公鑰上傳至伺服器(請注意保存好私鑰,且不得公開,否則他人將可任意入侵)。

Windows 系統

先切換至使用者目錄底下,並按下列程序輸入指令

sh
1
2
3
4
5
6
7
8
9
10
11
C:\Users\user> cat ~/.ssh/id_rsa.pub | ssh ubuntu@<樹莓派ip> 'cat >> ~/.ssh/authorized_keys'

ubuntu@<樹莓派ip>'s password: #輸入ubuntu帳戶密碼

C:\Users\user> ssh ubuntu@<樹莓派ip>

ubuntu@<樹莓派ip>'s password: #輸入ubuntu帳戶密碼

ubuntu@ubuntu:~$ chmod 700 ~/.ssh

ubuntu@ubuntu:~$ chmod 644 ~/.ssh/authorized_keys

Mac 或 Linux 系統

輸入下列指令,並依提示輸入密碼即可

sh
1
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@<樹莓派ip>

修改 SSHD 設定檔

以 SSH 方式登入樹莓派,並輸入下面指令

sh
1
sudo nano /etc/ssh/sshd_config

將下列該行之 # 註解移除和修正文字

plaintext
1
2
3
4
5
6
7
8
9
Port 22 # 將 22 替換為其他 1000-9000 之數字,並記下此「連接埠號」
LogLevel VERBOSE
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
X11Forwarding no
# 文件底端增加
Protocol 2

按下 ctrl + X 鍵,之後按下 Y 鍵選擇保存,再按下 Enter(此為 nano 編輯器覆寫原檔案之保存方式,請牢記)
輸入 sudo systemctl restart sshd 並依提示輸入密碼,再登出系統,往後以如下指令進行無密碼登入,可確保安全性

sh
1
C:\Users\user> ssh -i .ssh/id_rsa -p <連接埠號> ubuntu@<樹莓派ip>

此時以之前之帳號與密碼 SSH 指令登入,應無法登入,並可以移除鍵盤、螢幕,僅以遠端進行操作。

語系設定 (可選)

console
1
locale
console
1
sudo dpkg-reconfigure locales
console
1
sudo systemctl reboot
console
1
locale