SSHログインは、公開鍵方式に変更
引き続き、ここを参考にして作業を進めます。
ここの初っぱなに書いてあるrootのパスワード設定は、既にやっているので、今回は飛ばします。
ポート番号と、piユーザーに代わる独自ユーザーの作成、piおよびrootユーザーの閉鎖をやってきましたが、パスワード方式での認証なので、総当たり攻撃などをされた場合に入られてしまうリスクがあります。
そこで、公開鍵方式でのアクセスに変更します。
ラズパイ上に、公開鍵と秘密鍵のペアを作成
ssh-keygenコマンドを用い、公開鍵と秘密鍵のペアを作ります。
$ ssh-keygen -t rsa
途中でパスフレーズを聞いてきます。これは公開鍵方式に変更したときに使いますので、どこかにメモした後(私はあえてアナログな、ボールペンで手書きを採用しています)、このパスフレーズを入力します。
秘密鍵を持たない限り、その端末はアクセスできませんので、適度に複雑で覚えやすい名前でいいと、現段階では個人的に思います。(例:nekono-CHAtora-35kaigorogoro など)
これにより、HOMEディレクトリに.sshディレクトリという隠しディレクトリが出来ます。
そこに、公開鍵と秘密鍵のセットができあがっています。
Raspberry pi OSの初期状態では、公開鍵の名前は「authorized_keys」になっているので、この名前をcatコマンドを使って変更します。
そして更に、アクセス権を所有者のみのアクセスに制限します。
(HOMEディレクトリから) $ cd .ssh $ cat id_rsa.pub >> authorized_keys $ rm id_rsa.pub $ chmod 600 authorized_keys
WinSCPで、秘密鍵を秘密のうちにPCへ転送する。
ここからSSHアクセス環境を、公開鍵対応にします。
その前に必要な、秘密鍵の転送を行います。
前述のサイトではTera TermのSSH SCP機能を使うとなってますが、ちなみに当方の接続環境は、PuTTYなので、別途WinSCPを使うことにします。
接続できたら、.sshディレクトリを表示させるために、隠しディレクトリを表示させます。
「オプション(O)」→「環境設定」→「パネル」で、下記の画面を開き、
「隠しファイルを表示する(S)」にチェックして、「OK」ボタンを押します。
.sshディレクトリ内にあるid_rsaファイルを、Windows上にあらかじめ作っておいた、PuTTY用の秘密鍵フォルダに転送します。(SCPモードで転送されます)
PuTTY用に秘密鍵を変換
これで、PuTTYの設定を変更すれば、公開鍵方式で接続・・・できません。
PuTTYの秘密鍵はPuTTY特有の形式になっているので、PuTTY Key Generatorで、PuTTY特有形式に変換します。
変換されたら、PC上のid_rsaは念のために消しておきます。
接続確認
PuTTYに先ほど変換した秘密鍵を設定し、「カテゴリ」の「セッション」(一番上)に戻って、「保存」を押してください。
これで、ラズパイをSSH接続し、パスフレーズを入力し、接続できたら完了です。
SSHからパスワードでの認証を出来なくする
あと、SSHでパスワード入力できないようするために、sshd_configを編集します。
$ sudo vi /etc/ssh/sshd_config
既に、sudo昇格時にパスワード入力が必須となっています。
保存後、再起動しますと、SSHからパスワードを使った認証が出来なくなります。
ちなみに、GUI環境では、デスクトップにアクセスには、新ユーザーでもパスワード入力が必要になっています。
OS、アプリの自動アップデート化
Raspberry Pi OSのアップデートは、通常、こういう操作でアップデートしていくわけですが、
$ sudo apt-get update $ sudo apt-get -y dist-upgrade $ sudo apt-get -y autoremove $ sudo apt-get autoclean
手間がかかりますので、自動化していきます。
crontabコマンドを実行すると、ファイルが編集できるようになりますので、この最後の行に追加していきます。
今回は、ここも参考にしています。
$ sudo crontab -e
すると、初回のみ使用するエディタを選択を要求されます。(私はvim.tinyつまり2番を選択しました。)
次の一行を書き加えます。ここでは夕方の18:00にこれらが起動される様にしています。
0 18 * * * sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get autoclean
自動更新の動作確認
また、動作したか確認をするために、ログの設定をします。
$ sudo vi /etc/rsyslog.conf
そして、ログ記録のサービスを再起動します。
$ /etc/init.d/rsyslog restart
すると、対象になるID(作成したID)の選択とそのパスワードが求められるので、入力します。
既にpiユーザーの有効期限が切れているので、新ユーザー(ここでは2番)を入れます。
そして、18:00を過ぎるのを待って、ログを確認します。
$ less /var/log/cron.log
このように、起動していることは確認できました。
ただこれを見てもわかるとおり、cron.logは、指定されていないジョブも結構記録されて、その分ログがたまりやすくなり、microSDの記憶容量を圧迫していきますので、普段はログ記録はしなくてもいいかもしれません。
IPアドレスの固定化について
最後になりましたが、IPアドレスを固定化していきます。
が、ここで問題が。
色々資料を当たって、/etc/dhcpcd.confに、エディタで設定を追加するとありますが、、、
その /etc/dhcpcd.conf が、ありません。
ちなみに別のラズパイで、Raspberry Pi OS のFull版を入れているものがあるのですが、そちらの方にはありました。
おそらく、先にOMVをインストールしたからだと思います。
OMV側でIPアドレス固定方法がありますので、次ページ以降で記述しようと思います。