Raspberry Piに安全にSSHログインできる公開鍵認証の設定方法

Raspberry Piに安全にSSHログインできる公開鍵認証の設定方法

パスワードログインはランダムで試すことで突破されることもあるので、公開鍵認証を行いました。
この設定を行うことでセキュリティの向上が期待できます。

公開鍵認証は秘密鍵を持つ人だけがログインできるようになる設定です。

2018/02/18 時点の Raspberry Pi 3 の環境で設定を行いました。

 

まず公開鍵と秘密鍵を作成します。
今回は Windows 環境で鍵を作成するため TeraTerm を使用しました。

Mac ユーザ等は ssh-keygen コマンドで生成できます。

 

公開鍵と秘密鍵の作成

  1. TeraTerm を起動して、[設定]-[SSH鍵生成] をクリック
    TeraTerm を起動して、[設定]-[SSH鍵生成] をクリック

  2. [鍵の種類] は "RSA" を選択して、[ビット数] は "2048" を入力
    [生成] をクリック
    [鍵の種類] は "RSA" を選択して、[ビット数] は "2048" を入力

  3. 「鍵を生成しました。」と出力される
  4. [鍵のパスフレーズ]、[パスフレーズの確認] にパスワードを入力
    [公開鍵の保存] と [秘密鍵の保存] をクリックして、それぞれの鍵を保存する
    ※鍵のパスフレーズ無しの場合は秘密鍵だけでログインします
    [公開鍵の保存] と [秘密鍵の保存] をクリックして、それぞれの鍵を保存する

この設定完了後に秘密鍵(id_rsa)を無くすとログインできなくなるため気をつけてください。
また、秘密鍵が第三者に漏洩すると、ラズパイにログインされてしまうので厳重に保管してください。

 

公開鍵を Raspberry Pi に保存

  1. ラズパイにログインする
  2. ホームディレクトリに .ssh ディレクトリを作成

    cd
    mkdir .ssh

  3. .ssh のパーミッションを変更

    chmod 700 .ssh

  4. .ssh ディレクトリの下に公開鍵ファイルを作成して開く

    vi ~/.ssh/authorized_keys

  5. 保存した "id_rsa.pub" をテキストエディタで開いてコピーする
    保存した "id_rsa.pub" をテキストエディタで開いてコピーする

  6. コピーして文字列を ~/.ssh/authorized_keys にペーストして保存する
    ※ペーストする前に [i] を入力して入力モードにするのを忘れずに!
    コピーして文字列を ~/.ssh/authorized_keys にペーストして保存する

  7. authorized_keys のパーミッションを変更

    chmod 600 ~/.ssh/authorized_keys

 

SSH の設定変更

  1. sshd_config のバックアップ

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.yyyyMMdd

    ※yyyyMMdd は日付を入力

  2. sshd_config を開く

    sudo vi /etc/ssh/sshd_config

  3. "#PasswordAuthentication yes" の下の行に "#PasswordAuthentication no" を追加して保存する
    "#PasswordAuthentication yes" の下の行に "#PasswordAuthentication no" を追加して保存する
  4. SSH の再起動

    sudo service ssh restart

    これでパスワードログインが出来なくなり、秘密鍵を持っている人だけがログインできます。

 

 

おまけ:Teraterm のマクロを使って簡単ログイン

以下の内容を記載した "xxxx.ttl" ファイルを作成する

username = 'ログインユーザ名'
hostname = 'ログイン先のIPアドレス(例:192.168.0.1)'
keyfile = 'ローカルに保存された秘密鍵のパス'
portnum = 'ポート番号'

msg = hostname
strconcat msg ':22 /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile
connect msg

.ttl ファイルを "Tera Term Macro Interpreter(C:\Program Files\teraterm\ttpmacro.exe)" で起動するように設定
.ttl ファイルを "Tera Term Macro Interpreter(C:\Program Files\teraterm\ttpmacro.exe)" で起動するように設定

xxxx.ttl をダブルクリックするとログインできるようになります。