FreeBSD 安裝 ( macOS )
在 MacOS 安裝 FreeBSD
使用 parallels desktop
來操作
- FreeBSD 的 IOS 檔案 ( 13.1 版) 列表 : https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/13.1/
- FreeBSD-13.1-RELEASE-arm64-aarch64-disc1.iso.xz (download link)
disc
與 did
檔名結尾的比較
https://forums.freebsd.org/threads/difference-between-disc-1-and-dvd-1.54329/
在 parallels desktop
新增 VM
- 先選擇
控制中心
再選擇創建一個虛擬機器
- 選擇繼續
- 點選右邊的,使用鏡像檔來創建機器
- 繼續步驟
- 忽略警告並選擇
其他作業系統
(不是選其他 linux 系統)
安裝 FreeBSD
可以參考 : NYCU NASA 安裝 FreeBSD
pdf
ssh 進入 FreeBSD ( 從 macOS 的終端機進入 FreeBSD VM )
- 輸入
ifconfig
指令來確認當前裝置被分配到的 IP - ssh 進入 FreeBSD ( 跟登入其他 VPS 的步驟一樣 )
- 成功登入
作業
預先設定
judge
用戶 &group
設定- wireGuard VPN
功課說明
General task
- SSH Public Key and judge User : 需要正確設定好 ssh 讓測試主機端有辦法連進來剛剛設定好的 VM 來測試主機的環境是否都達到作業需求。
public key
(公鑰) 可以從 OJ(測試主機端) 下載,所以我們必須要將下載在本地端( macOS 這邊)的公鑰複製到 FreeBSD VM 中 (這個步驟可以看成是要將公鑰複製到任一台遠端的主機中一樣)
可以使用 ssh-copy-id
或 scp
指令來將 public key
複製到 VM 中。
另一個解法是使用 curl
指令,直接從 OJ 下載 public key
( 就可以省去從本地端複製到遠端主機的步驟 )
至於 wiredGuard
的設定檔可以利用 scp
來複製到 VM 中 ( 同樣也可以利用 curl
指令來省去這個複製的步驟 )
-
Install FreeBSD 13.1-RELEASE and apply the security patch : 在安裝 FreeBSD 後, 執行
freebsd-version
應該會得到13.1-RELEASE
( 並沒右p7
標籤在後面 ) , 所以我們必須將系統更新到最新的修補版本 . 執行freebsd-update fetch install
指令就可以將系統更新到最新修補版本了 . -
Time Zone : 在執行
bsdintall
時,應該就已經把時區的部分設定完了
User & Group task
使用 adduser
指令( 在執行這個指令時,當前的用戶必須要有 root
的權限 ) 來新建立用戶並設定群組。
至於 judge user could run sudo command without password
( judge 用戶不需要輸入密碼就可以執行 sudo
指令 ) 的要求 , 我們必須要更改 sudoer
的設定檔 . ( 同樣的,在執行這個指令時,當前的用戶必須要有 root
的權限 )
- 透過
visudo
指令 : 從指令名稱就大概推的出來要如何使用了,visudo
會直接開啟vi
編輯器讓我們修改sudoer
設定檔案 - 透過
vim
編輯器來修改sudoer
設定檔 : 預設的sudoer
設定檔位於/usr/local/etc/sudoers
, 所以我們可以透過vim
來修改sudoer
設定檔 (vim
顯然比vi
好用多了 ) .
WireGuard
用 scp
指令複製設定檔到 /usr/local/etc/wireguard/
目錄 . 再透過 wg-quick
指令來開啟 VPN .
可以從這邊參考如何安裝 wireguard : https://www.wireguard.com/install/#freebsd-kmod-userspace-go-tools
commands
freebsd-update fetch install
: 將系統更新至最新修補版本shutdown -p now
reboot
su
:su - USERNAME
: 切換至 USERNAME 用戶 ( 整個環境都會套用 )su USERNAME
: 切換至 USERNAME 用戶 ( 有些原本用戶的環境會被保留 )
groups USERNAME
: 檢查USERNAME
的群組adduser
rmuser
pw group mod GROUP_NAME -m USERNAME
: 將USERNAME
用戶(已經建立的) 加到GROUP_NAME
群組visudo
: 編輯 sudoer 設定檔- sudoer 設定檔預設路徑 :
/usr/local/etc/sudoers
- sudoer 設定檔預設路徑 :
wg-quick
wg-quick up /path/to/file.conf
: 啟動 VPN/usr/local/etc/wiredguard/vpnName.conf
( 預設的設檔路徑 )
scp
scp /path/to/local-server/file User@Host:/path/to/remove-server/dir
ssh-copy-id
ssh-copy-id -i /path/to/keyGenFile.pub User@Host
service sshd restart
遇到的奇怪 Bug ?
Bug 說明:
在設定完 wiredGuard
和 authorized_keys
後,測試主機端有辦法 ping
到 VM 但沒有辦法 ssh 進入 VM
I have tried remove .ssh/authorized_keys
and download public key
from judge server serverl times , however the judge server still not can ssh into MV.
解決:
我朋友歐文,直接把整個整個 .ssh
資料夾刪除再重新創建並複 authorized_keys
就解決了 .
目前也還沒搞清楚是哪個步驟造成的?