【SSH接続でのパスワード廃止でセキュリティ性向上】ラズパイへのリモートアクセス時のログインをパスワード認証方式から公開鍵認証方式に変更する【TeraTerm】

どうも、まるです。

今回は、TeraTermなどのSSH接続によるRaspberry Pi遠隔操作のセキュリティレベルを上げるために、パスワード方式から秘密鍵と公開鍵を使った、「RSA暗号(SHA-256)」といった認証方式に接続方法を変更、制限していきます。

RSA暗号とは・・・素因数分解の難しさを利用した暗号アルゴリズム。

SHA-256とは・・・入力されたデータをもとにして作った適当な値を返してくれる、ハッシュ関数の一つ。

です。すごいざっくり。(詳しくはリンク先参照)

では早速、手順をお見せしていきましょう。

以下のコマンドで秘密鍵と公開鍵を生成します。

ssh-keygen -t rsa

Enter file in which to save the key (/home/oyabin/.ssh/id_rsa):

と表示されるので、一度Enter。ファイルの保存場所を聞かれていますが、
既定位置で今回は大丈夫です。変えたい場合はお好みで入力してください。

次に、
Enter passphrase (empty for no passphrase):ときかれます。

これは、パスフレーズを設定した場合にそのフレーズを知らない人を弾いてくれるようになる機能です。よりセキュリティレベルが強固になるので設定しておきましょう。
メモをしておくなど、忘れないようにしましょう!

このように表示されたらRSA暗号キーの生成に成功です。
秘密鍵(id_rsa)と公開鍵(id_rsa.pub)の2つのファイルが、/home/newpiuser/.sshに作成されています。

次に、この生成された公開鍵(Public Key)を既定の位置に置きます。
初期設定だと~/.ssh/authorized_keysディレクトリに置くことでうまく機能しますが、
権限設定がまだ出来ていないので同時にそちらも行います。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub
chmod 600 ~/.ssh/authorized_keys

一行目でコピーし、二行目で元ファイルの削除、三行目で権限の付与を行っています。

ここまで行うと次はTeraterm を起動し、ユーザーとしてSSH接続を行います。
(既にlog inしているならそのままでOK)

「ファイル>SSH SCP…」より、先ほど生成した秘密鍵を遠隔操作元のPCにダウンロードします。下段のFrom:に該当ファイルのパス、To:に保存先のディレクトリを選択します、今回のファイルパスは、.ssh/id_rsaです。

Receiveを押すと、秘密鍵ファイルが正常にダウンロードされます。

一度TeraTermの接続を解除し、再接続を行います。

この時に、今までは「ブレインパスワードを使う」を選択していましたが、
「RSA/DSA/ECDSA/ED25519鍵を使う」に変更します。

そして、先ほどの保存先のパスを読み込んでダウンロードしたid_rsa(秘密鍵)ファイルを選択します。

最後に、パスフレーズに先ほど設定したPass Phraseを入力します。
※ここで以前のユーザーPWを入力してしまうと、以下のようなエラーになり接続できないので注意してください。

パスフレーズを間違えると入れない

正しいパスフレーズを入力すると、、

接続成功

はい、無事接続できるようになりました。

最後に、今までのブレインパスワードによる認証方法をRaspberry Pi側で無効化しておきましょう。
そうすることで、総当たり攻撃(ブルートフォースアタック)のようなサイバー攻撃から身を守ることが出来ます。

sudo nano /etc/ssh/sshd_config と叩き、

#PasswordAuthentication yes

というコメントアウトされている行を探し、その下に

PasswordAuthentication no

と追記します。

パスワード認証によるSSH接続を無効化

最後にラズベリーパイを再起動することで、設定が適用されます。

これで、RSA暗号方式によるSSH認証の設定が完了しました!
お疲れ様です٩(๑❛ᴗ❛๑)

Raspberry Piの人気記事一覧

【2023年最新】RaspberryPiのシリーズ比較【おすすめモデル紹介】
【Raspberry pi】USBメモリをマウント(認識)させる方法
Raspberry Piで自動ログイン(auto-login)を設定する
ラズパイで起動時にBluetooth接続したデバイスを自動でConnectedにする(ServicesResolved: no Connected: noとなり都度途切れてしまう場合の解決法)
RaspberryPi(ラズベリーパイ)で.shファイルを実行する方法
タイトルとURLをコピーしました