SSHを利用した公開鍵認証の設定方法についての覚え書きです。
環境
クライアント: Desktop (Ubuntu 16.04)
サーバ: Raspberry Pi3 Model B (Raspbian)
手順
クライアントかサーバーのどちらかで秘密鍵と公開鍵のペアを作成し、もう片方のPCへ鍵を転送して登録します。
ここではクライアントで認証鍵を作成しサーバーに転送します。
認証鍵の生成
クライアントで認証に利用する公開鍵と秘密鍵を ~/.ssh/ に生成します。
新規に作成される id_rsa が秘密鍵、 id_rsa.pub が公開鍵です。
既に秘密鍵や公開鍵を作成済みの場合は使い回すこともできますし、別名で新規の認証鍵を作成することもできます。
ここでは認証鍵がないものとしてデフォルト名で新規に作成します。
# 認証鍵の作成 $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/home/hiyoshi/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub. The key fingerprint is: SHA256: The key's randomart image is: +---[RSA 2048]----+ ... +----[SHA256]-----+ # 認証鍵の確認 $ ls -l -rw------- 1 hiyoshi hiyoshi 3326 2月 7 03:20 id_rsa -rw-r--r-- 1 hiyoshi hiyoshi 746 2月 7 03:20 id_rsa.pub -rw------- 1 hiyoshi hiyoshi 3102 2月 8 22:03 known_hosts -rw------- 1 hiyoshi hiyoshi 3102 2月 8 02:09 known_hosts.old
デフォルトでは 2048ビット で認証鍵を生成しますが、セキュリティを考慮して -b オプションで 4096ビット で生成するように指定し、また -C オプションでコメントをつけています。
公開鍵の登録
クライアントで生成した公開鍵を scp でサーバーに転送します。
# サーバーに転送 $ scp ~/.ssh/id_rsa.pub hiyoshi@192.168.3.4:/home/hiyoshi/.ssh/
次にサーバー側で公開鍵の情報を ~./ssh/authorized_keys に追記します。
また authorized_keys を新規作成した場合はセキュリティ向上のためにパーミッションを変更して所有者の読み書きのみに制限して、不要になった元の公開鍵ファイルを削除します。
# 公開鍵の登録 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 所有者のみ読み書き可能 $ chmod 600 ~/.ssh/authorized_keys # 不要になった元公開鍵を削除 $ rm ~/.ssh/id_rsa.pub
これで準備は完了です。
公開鍵認証によるログイン
パスワードによるログインと同じ要領でsshを使ってログインします。
ログイン時に認証鍵生成時に入力したパスフレーズの入力を求められるのでそれを入力すればログインできます。
$ ssh hiyoshi@192.168.3.4 Linux raspberrypi 4.9.79-v7+ #1086 SMP Wed Jan 31 18:03:34 GMT 2018 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Feb 8 14:59:43 2018 from 192.168.3.3
秘密鍵を使い回すのであれば、一度認証鍵を作成したあとは公開鍵をコピーして登録するだけなのでお手軽にセキュリティを上げられていいですね。
参考
Generating a new SSH key and adding it to the ssh-agent – User Documentation