从此

🏠 » 📄文章 » 内容

 欢迎来访!

Headless 自訂映像檔 Raspberry Pi OS 自動設定使用者帳號和密碼

🕗2026-09-08👁️0

在最近發布的Raspberry Pi OS image,已經將以往預設的使用者名稱「pi」和密碼「raspberry」拿掉了。如果是實機操作還好辦,因為第一次開機時,就會在螢幕上要求使用者建立使用者名稱、密碼。

對於「無頭」操作,例如透過UART serial console或ssh操作的使用者,可能就不是這麼友善了,雖然也可以事先在Raspberry Pi Imager中設定,不過,若要在Imager中設定使用者名稱、密碼,得要在選擇OS的步驟中,選擇Raspberry OS,若是選擇「Use custom」,Imager則會跳過自訂的步驟。

然而,我個人習慣是會離線保留特定版本的OS Image,以便下次復刻相同的執行環境,的確會在Imager中選擇「Use custom」。因此,要設定使用者,就得模仿Imager的行為了:它設定使用者的機制就是會在/boot分區內,建立一個名為userconf或userconf.txt的文字檔,該文字檔是以username:encrypted-password的格式,紀錄使用者名稱、密碼,第一次開機時會依文字檔紀錄的內容設定使用者。當然,我們也可以不依賴Imager,手動新增一個這樣的文字檔。

其中它的密碼是以SHA-512加密的形式記錄,舉例來說,如果我們要建立一個加密過的密碼「raspberry」,可以用以下指令來產生:

  1. echo "raspberry" | openssl passwd -6 -stdin

然後我們便會得到一串加密過後的「raspberry」,每次執行產生這串加密的文字,輸出結果都會不一樣,因為openssl預設使用隨機鹽值(Random Salt)來加密:

  1. $6$w5xuApJwafmnS7jz$04kheN5GorhCO4tHOe3nIM/bU7.9gaqFhrE2Zk4HzGga2Eoxo0xjReePM4P1tMmDHexLSABdrO1kGSD1VO7sl/

接著在 /boot or /bootfs 分區中新增一個名為 userconf 空白的文字文件,並在其中輸入下面的文字,
如此以來,就會在第一次開機時,讓系統自動新增使用者名稱「pi」並將密碼設為「raspberry」:

  1. pi:$6$w5xuApJwafmnS7jz$04kheN5GorhCO4tHOe3nIM/bU7.9gaqFhrE2Zk4HzGga2Eoxo0xjReePM4P1tMmDHexLSABdrO1kGSD1VO7sl/