本ブログでは量産時に固有のSSHの鍵を生成する方法についてご説明します。
インストールディスクで固有のSSHの鍵を作成する方法は下記を参照下さい。
Armadillo Base OS:量産時にSSHの鍵を生成する方法(インストールディスク編)
インストールディスクを使わず、swupdateで量産用として書き込む場合には本ブログの
内容が参考になると思います。また、swupdateで量産用として書き込む場合には下記の
ブログも参考にして頂ければと思います。
Armadillo Base OS:開発したArmadilloをインストールディスクを使わずに複製する
実施手順
既にインストールディスク作成(make-installer)を実行する前にsshdが有効化している場合は
sshdの無効化・削除及び鍵の削除を行います。まだsshdの有効化や鍵の生成をしていない
場合はスキップして次の2.初回起動時にsshdと鍵を生成するへ進んでください。
《注意》
sshdは起動時に鍵がない場合自動生成しますが、persist_fileで保存しない限りは次回起動時には
都度作り直す事になります。よって、ここでは1度だけ鍵をつくる為にsshdを一旦無効化しています。
1.sshdと鍵を削除する
以下の順に実行します。
sshdを止める [Armadillo]# rc-service sshd stop sshdをサービスから消す [Armadillo]# rc-update delete sshd sshdの実行スクリプトをeMMCから消去 [Armadillo]# persist_file -d /etc/runlevels/default/sshd sshの鍵をeMMCから消去 [Armadillo]# persist_file -d /etc/ssh/*key*
これで、Armadilloからsshdと鍵を消去しました。
2.初回起動時にsshdと鍵を生成する
ここではsshの鍵がない場合を初回起動と判定しています。
鍵が無い場合にsshdを有効化、鍵の生成を行うスクリプトを作成します。
鍵が生成された後は本スクリプトが実行されることはありません。
/etc/local.d/ に ssh.start という以下のスクリプトを作成します。(名前は任意)
#!/bin/sh if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then #sshdサービスの有効化 rc-update add sshd rc-service sshd start #sshd設定保存 persist_file /etc/runlevels/default/sshd #鍵の保存 persist_file -r /etc/ssh fi
次に作成したスクリプトに実行権限とeMMCへの保存(永続化)を行います。
[armadillo]# chmod +x /etc/local.d/ssh.start [armadillo]# persist_file /etc/local.d/ssh.start
以上で、次回起動時に自動でsshdを有効化、鍵生成+永続化が行われます。
本スクリプト実行前の状態でmake-installerを実行頂ければ個体毎に固有の鍵を生成する事が出来ます。
《補足》
初回起動時にsshの鍵を生成する為、CPU能力によっては少し時間が掛かる場合があります。