2017年2月5日

SSHで公開鍵を使ってログインできるように設定するには?(ssh-keygenコマンド)

SSHのユーザー認証には、パスワードを使った認証と、公開鍵を使った認証があります。公開鍵認証は、公開鍵と秘密鍵のペアを使って認証をする方法で、パスワードが第三者に知られてしまったとしても、秘密鍵が奪われない限りログインされません。秘密鍵自身もパスフレーズによって保護されているため、パスワード認証よりも安全性は高くなります。

以前の記事( SSHで接続するには? )では、他のホストの秘密鍵を持ってきて公開鍵認証をする方法を説明しました。ここでは、独自の公開鍵ペアを作成し、その上で他のホストに公開鍵を登録する方法を説明します。

まず、公開鍵と秘密鍵の鍵ペアを作成します。いくつかの種類から選べますが、ここでは一般的なRSA鍵で作成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/north/.ssh/id_rsa):  ← Enter
Enter passphrase (empty for no passphrase):  ← 任意のパスフレーズを入力
Enter same passphrase again:  ← パスフレーズを再入力
Your identification has been saved in /home/north/.ssh/id_rsa.
Your public key has been saved in /home/north/.ssh/id_rsa.pub.
The key fingerprint is:
e1:7a:f4:fc:f2:de:79:58:4b:e3:6e:d6:d4:36:57:13 north@WIN10
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|               E |
|        .       .|
|       . .     ..|
|        S       +|
|       o o     +*|
|      . . o   o=*|
|       .  .. ..*o|
|           ++ *o |
+-----------------+

パスフレーズには、スペースを含むこともできますので、できるだけ長い(破られにくい)パスフレーズを設定しましょう。作成された公開鍵は「.ssh/id_rsa.pub」、秘密鍵は「.ssh/id_rsa」です。

次に、接続先へ公開鍵を登録します。接続先のIPアドレスが192.168.1.24の場合、以下のコマンドを実行します。-iオプションで秘密鍵を指定します。IPアドレスの末尾の「:」を忘れないでください。

$ ssh-copy-id -i .ssh/id_rsa 192.168.1.24:
The authenticity of host '192.168.1.24 (192.168.1.24)' can't be established.
ECDSA key fingerprint is 08:31:56:0c:2c:0e:2b:75:35:97:f3:7f:26:4c:d5:f9.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
north@192.168.1.24's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.1.24'"
and check to make sure that only the key(s) you wanted were added.

さっそく試してみましょう。sshコマンドで接続して、次のように秘密鍵のパスフレーズを尋ねられたら成功です。パスフレーズを入力したら、ログインできるはずです。

$ ssh 192.168.1.24
Enter passphrase for key '/home/north/.ssh/id_rsa':




0 件のコメント:

コメントを投稿