Posted at

Rasapberry Piのログインを鍵認証方式にする


概要

Raspberry Piのsshログインを鍵認証方式へ変更した時の備忘録です。

鍵認証には公開鍵のRSAを使用しました。

動作環境は次のとおりです。

・母艦OS:Windows10

・デバイス:Raspberry Pi 3B

・デバイスOS:Rasbian jessie

以下、手順です。


手順


流れ

1.TeraTerm(sshクライアント)で公開鍵と秘密鍵を生成

2.公開鍵をRaspberry Pi(sshサーバ)に送る

3.Raspberry Piのsshに鍵認証を設定する


1.鍵生成

[設定]→[SSH鍵生成]

image.png

生成する鍵の設定ができます。

今回はビット数を"4096"にしました。

初期値の"2048"で生成してもOKです。

image.png

鍵の生成後

パスフレーズとコメントを入力します。

image.png

image.png

その後、公開鍵と秘密鍵を保存します。

これから生成したファイルを扱うので、わかりやすいパスがいいですね。

次の2つのファイルが生成されます。

id_rsa

id_rsa.pub

SSFTPやSambaなどを利用して、公開鍵ファイル(id_rsa.pub)をRaspberry Piのhome/pi/に送信しておきます。

その後、Raspberry Piにログインして次のコマンドを流します。

mkdir .ssh

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

次はsshの設定をして、鍵認証を有効にします。

設定ファイルを、次のコマンドで開きます。

sudo nano /etc/ssh/sshd_config 

以下の設定を行いました。

port 22  --> ssh接続ポート

PermitRootLogin no  --> root権限でのログインを無効
RSAAuthentication yes --> RSA認証を有効
PubkeyAuthentication yes --> 公開鍵認証を有効
AuthorizedKeysFile %h/.ssh/authorized_keys
-->公開鍵登録ファイルのパスと名前を指定
PasswordAuthentication no --> パスワード認証を無効

設定を終えたら、sshのサービスを次のコマンドでリスタートします。

sudo /etc/init.d/ssh restart

リスタートに成功すると、次のメッセージが出力されます。

image.png


2.sshログイン

それではTeraTermを起動してログインしてみます。

ユーザ名を入力して接続しようとすると。鍵を使うように促されます。

image.png

ここで、秘密鍵ファイル(id_rsa)を選択し、鍵生成時のパスフレーズを入力するとログインできます。

image.png

ログインできました!

image.png

以上。