公開鍵でsshログイン設定

はじめに

どういう訳か最近公開鍵の記事をよく書いている気がするので、ついでに公開鍵を利用したsshログインを行う設定方法を記述したいと思います。

せっかくなのでこれまで使用してきたopensslコマンドを利用したいと思います。

opensslコマンドでキーペアを作成しましたが上手く動作しませんでした。

  • opensslコマンド
    • HTTPS通信で使うSSL用の秘密鍵と公開鍵を発行するコマンド
  • ssh-keygenコマンド
    • 遠隔操作する時に使うSSH用の秘密鍵と公開鍵を発行するコマンド

上のような違いがあるようで、鍵の用途によって使い分ける方が良さそうでしたので、こちらでもssh-keygenコマンドを利用したいと思います。

手順

キーペア作成(クライアント側)

$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):【鍵ファイル名】
Enter passphrase (empty for no passphrase):【秘密鍵のパスフレーズ】
Enter same passphrase again:【秘密鍵のパスフレーズ】
$ ls
id_rsa  id_rsa.pub

秘密鍵/公開鍵の作成はウィザード形式で行われます。

  • 暗号タイプとバイト数を指定
  • 任意のファイル名を入力する
    • 指定しなければid_rsaになる
  • ユーザ確認のためのパスフレーズを入力

公開鍵を配置(サーバ側)

$ pwd
/home/【ユーザ名】/.ssh
$ scp 【ユーザ名】@【サーバ側IP】:/home/【ユーザ名】/id_rsa.pub ./
$ ls
id_rsa.pub
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

ファイル名を変更するのは後述しますが、sshサーバで設定されているデフォルトの秘密鍵ファイル名がauthorized_keysになっているからです。

設定ファイル変更(サーバ側)

# vi /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
# systemctl restart sshd

以上で設定完了です。

試験

クライアント側から公開鍵認証でログインしてみます。

$ ssh -i id_rsa 【ユーザ名】@【サーバ側IP】
秘密鍵のパスフレーズを入力。

ログイン出来るはずです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA