目次
1.仕様
2.キーの作成
3.キーの設定
4.設定ファイルの編集
仕様
SSH接続にはパスワード認証方式と公開鍵認証方式の2つがあります。
公開鍵認証方式とは
電子署名の応用で、秘密鍵の所有者しか正しい署名が作れないことを利用し、署名の正しさを公開鍵で検証してもらうことで、確かに所有者であることを確認してもらいます。
このような使い方ですから、秘密鍵は利用者本人以外に漏らしてはいけませんし、公開鍵は予めサーバに登録しておく必要があります。
これが本人確認になっているということです。
特にこだわりが無ければ、公開鍵認証方式を使うことをお勧めします。
キーの作成
まずは下記のコマンドを実行し、キーを作成します。
実行コマンド
$ ssh-keygen
実行結果
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
もしキーの場所を変更する場合はここで変更してください。そのままで良い場合は何も入力せずEnterを押してください。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスフレーズを設定する場合はここで設定してください。基本的にセキュリティーが上がるので設定しておくと良いでしょう。
The key fingerprint is:
SHA256:pqxX1cEHDIRsN31uVPPaxeBFrHjss7BbP9aNMIQnZZc ubuntu@example.com
The key's randomart image is:
+---[RSA 3072]----+
| . oo=...*+|
| + o B.E++|
| . . * X..+|
| + = *o.|
| S. + +. .|
| . o. + o |
| o. =.+o|
| .. ..o+o|
| .. ... o|
+----[SHA256]-----+
次に、キーを確認します。デフォルトの設定ですと、ホームディレクトリ内の.sshに保存されています。
実行コマンド
$ ls .ssh
実行結果
id_rsa id_rsa.pub
id_rsa は秘密鍵、id_rsa.pub は公開鍵のファイルです。
id_rsaはクライアント側に保存しましょう。
これでキーの作成は終わりです。
キーの設定
まずは、id_rsa.pubをauthorized_keysに名前を変更します。
実行コマンド
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
次に、authorized_keysのパーミッションを600に変更します。
実行コマンド
$ sudo chmod 600 ~/.ssh/authorized_keys
これでキーの設定は終わりです。
設定ファイルの編集
設定ファイルを変更する前に公開鍵認証方式で接続できるか確認しましょう。
確認が終わりましたら、設定ファイルを変更しパスワード認証方式を無効にします。
実行コマンド
$ sudo nano /etc/ssh/sshd_config
. . .
PasswordAuthentication no
. . .
変更が終わりましたら、SSHを再起動します。
実行コマンド
$ sudo systemctl restart ssh
これで公開鍵認証方式によるSSH接続ができました!