ブログ

Armadillo Base OS:量産時にSSHの鍵を生成する方法(インストールディスク編)

at_shinya.matsumoto
2023年9月1日 15時17分

本ブログでは量産時にインストールディスクで書き込みする際に、固有のSSHの鍵を
生成する方法についてご説明します。

インストールディスクではなくswupdateで量産用としてイメージを書き込む場合は、
下記のブログを参考にして頂ければと思います。
Armadillo Base OS:量産時にSSHの鍵を生成する方法(スクリプト実行編)

実施手順

sshdを有効化済み、SSHの鍵を生成済みの状態を起点として説明します。
※本手順では事前にsshdを無効化、既存のSSHの鍵を削除する手順は必要ありません。

1.make-installerを実行する
2.installer_overrides.shを作成する

1.make-installerを実行する

microSDカードを挿入して abos-ctrl make-installer を実行し、インストールディスクを
作成します。インストールディスク作成の詳細につきましてはArmadillo Base OS開発ガイド
の「開発したシステムをインストールディスクにする」を参照下さい。

[armadillo]# abos-ctrl make-installer

《補足》
 ・第二パーティションを作るか聞かれた場合は、適当なサイズで作成します。
 ・Armadillo Base OSのバージョンがv3.17.4-at.7よりも古い場合は、お手数ですが手動で
  第二パーティションのファイルシステムをmkfsで設定ください

2.installer_overrides.shを作成する

上記で作成したSDカードの第二パーティションに下記スクリプトを配置します。
ファイル名はinstaller_overrides.shとします。

#installer_overrides.sh 
 
preinstall() {
        : "Preinstall function, run before eMMC is partitionned"
}
postinstall() {
        : "Postinstall function, run after all other steps except sending logs"
         rm /target/etc/ssh/*key*   //ssh-key delete
         ssh-keygen -A -f /target   //new ssh-key generate
}
send_log() {
        : "This function is called after aggregating logs for archival"
}

《補足》
 Armadillo側のファイルパスを指定する場合は先頭に /target が必要になります。
 (例:/etc/ssh ⇒ /target/etc/ssh )

この作成したSDカードでインストールを行うと、インストール時に固有のSSHの鍵も
書き込まれるようになります。