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鍵生成]

生成する鍵の設定ができます。
今回はビット数を"4096"にしました。
初期値の"2048"で生成してもOKです。

鍵の生成後
パスフレーズとコメントを入力します。

その後、公開鍵と秘密鍵を保存します。
これから生成したファイルを扱うので、わかりやすいパスがいいですね。

次の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

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

2.sshログイン

それではTeraTermを起動してログインしてみます。
ユーザ名を入力して接続しようとすると。鍵を使うように促されます。

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

ログインできました!

以上。