ssh-keygenでRAS鍵をつくってMacからCentOS7へ接続できるようにする

MacVirtualBoxに作ったCentOS(ゲストOS)にRSA鍵認証許可を設定したので、Mac(ホストOS)からRSA鍵認証でログインできるようにします。
ponsuke-tarou.hatenablog.com

  • 目的 : Linux環境でSSHの鍵作成から設定まで勉強したい!
  • 環境

Macで公開鍵と秘密鍵を作成する

鍵を作成する

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mana/.ssh/id_rsa):   # <-------- 特に指定がなければEnter
Enter passphrase (empty for no passphrase):   # <--------------- パスフレーズを入力
Enter same passphrase again:  # <-------------- 確認用にもう1度パスフレーズを入力
Your identification has been saved in /Users/mana/.ssh/id_rsa.
Your public key has been saved in /Users/mana/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+OKA8zTBRkOH7shmT36jxXelsEek9RnRI69Xy8RzzB8 mana@mananoMacBookAir.local
The keys randomart image is:
+---[RSA 2048]----+
|    ...     ..   |
|   ...      ..o  |
|   .o     o .o.+ |
|   o.. . + . o.E=|
| . o+ . S . +.o.*|
|  =ooo . + o. .o.|
| oo++ + + +  .   |
|   +o=oo o       |
|    oo..         |
+----[SHA256]-----+

$ ls -la .ssh/
total 24
drwx------   5 mana  staff   170 Aug  1 22:44 .
drwxr-xr-x+ 60 mana  staff  2040 Jul 26 23:24 ..
-rw-------   1 mana  staff  1766 Aug  1 22:44 id_rsa #<--------------- 秘密鍵
-rw-r--r--   1 mana  staff   409 Aug  1 22:44 id_rsa.pub #<------------ 公開鍵

# 公開鍵に所有者のみ読み書き権限を付与します。
$ chmod 600 .ssh/id_rsa.pub

# 権限を確認します。
$ ls -la .ssh/
total 24
drwx------   5 mana  staff   170 Aug  1 22:50 .
drwxr-xr-x+ 60 mana  staff  2040 Aug  1 22:50 ..
-rw-------   1 mana  staff  1766 Aug  1 22:44 id_rsa
-rw-------   1 mana  staff   409 Aug  1 22:44 id_rsa.pub

注意ポイント
パスフレーズが短いと↓怒られて↓鍵作成に失敗します。

Saving key "/Users/mana/.ssh/id_rsa" failed: passphrase is too short (minimum five characters)

鍵の強度(鍵長)を確認してみます。

$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
2048 SHA256:+OKA8zTBRkOH7shmT36jxXelsEek9RnRI69Xy8RzzB8 mana@mananoMacBookAir.local (RSA)

qiita.com

秘密鍵のフォーマットを見てみます。

$ vi /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,8B5E34DBBBC0801DDDC2A5A241775435

c2ACE4A1dOR55tGA7ZmIJ4dUDaVTL3uMyi3OiPlZdYDdnTKKrDpw9hHMILiauoCV
46Njy+DiE1iqNgKJHMKFLm1Flr3iFzehPm+u97qjFubZ5vS5wqYRjI8nSaKpE2X4
DSLUCUMBRIx5uOMuEWxLF4NrL50vgM35WQjAXgPxqZhku7P7pYUEPDekbMP6rlVr
W1kKRuXfIPNC18W40HUaUGnj+qjPm96wuj0TQSZww1k+aAOb+ngbLoXCELYg38WT
rCpAHLOky/BRHQhNDyUbOsV4QZuCMRlSsNEHGC9FP0/dn0azabuNWo40UNhSEmjM
C1zQh5zSP7LzGXo2DD1KfsKjAcfgRPidUD0GIjzqz/9mPDwXOorSOmXYwG9NXyAB
+dljYkcJDyfxaZHR7lJMnm2hegFRmaqlW+eIYPt9S4TgGJ0OM6X3Hbo+jtZQa3/u
DFauOVRj5wfXcSQxS+m9LIb+tuFghBOyAfdJbtFfO/dZDIDH6oB2gXQc6sklIQqU
nnciusaHoRfhI+SM29lLkErwmZ7TARxDkKAUO2qYIczoCJwgYM3PvhTTzaqUj0cY
7PMVYrO5Rlh7kEDBsRr0mjfCV27JQ3B6mLuLwPlqwuk8w/Nlah1MkV+NqZwc4H2W
EjTRls9gFm0jG9EotdfRy9EnRDoYLWWglhgZ0nIqDtfuF2nqFIxSV77/wQHY2cwc
Lx0rRUj6dUhTPEM4ROdVfD6di6WVaNpvTe65kAweRItBf0c66jqJrollKx91xQGF
T5XSLUD+iTOQu+wUM67wVjRVT7sjxYOm9IViBw2GpRD9E+9jEP+mw6FWL1adEony
Vi9Bz1MqxcxEbCQp7uNBjCZjGk3lGnI5nrscfdRJLfWnBGVg9bCABKP+OvNGdKNr
Wyi/TPvjatpBl83Z2b5Dpb/XAhq8IgaAwV973MsJPZzkc18+MMsbvU37RTj4UTL9
dl0rKvxgD6044328PZsEEX19tqQStWEN2JoWxZG//mbpMk+bAP7A9i1x/0cy3JOQ
t0tcSI6vLBjbGD/mVfX49Bl29h/e92p+fioxuNoqvm0K+GSJoJ9VMV6wweI0o2AY
4LMqOxXd/KSg0uixep0zY4QndxvT1uspTDb9JCPA6M5aIi7MMrt/l8amHNNhWco3
c3Tt1bbXhukhMECI5jEPI6SOXobHhr2m6gp78G7Kpcm+X7boAl+cLDtiHZSkeUIJ
CO1cZLsto7xzkqyu7cee5tTW69tBGjTklrGm6LhohV0myKq2I/VCmS7mMLzBNDHj
+5P1qpwhxv+zGgjQg3n+v1rIxilSaah+2Kp7MoGHgQZOD73xw/81KCP77/xoREOJ
QXuCsqk0uGAdTjef/OTUlMCZp1uJro0hrQW8S2pLgKS/t+6F/lzX0qM7HemaKTzi
rDxjhG2fR+hwcjokgw/8PtXjcYAn/CuD3/8to+0D8e+ZQrEwj5rLfSwKk7QmsVmQ
af6R+5iWHVjfLPhtnjyEi1rVyvplheTV7TPqUEx6x3Bt74fYIW9uKttNxO/BiVmE
28GkLxdacwcGRtqDKIgHnBvZz9Z8TRyis66mnd/onZq7QE8gzJXAqtPJVGBpPGsK
-----END RSA PRIVATE KEY-----

公開鍵のフォーマットを見てみる

$ vi /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCunPJl+yHM3LWrufikAFXYMlTaLt7azQ8ciPY8YHKxTXHQtunkFkfazDFJ/8GpU3W9vgNAP2n8XBs41NhjlAl6bi6Ouncs8tJOdNrCOAftX+R2KRI5/S3LuE3wGo411yGNn0MXOl5PFCJLLyRFZG4roD7J6f+hl6Jett8TLIyE1TsFrdVAtzPf0nvs7XHnNc2YU+kK5F0MmPpGpFv5k2mqle8VpxrH0MOu714e8sr7yxBbQpMGmqvJ8Lye/i2P0DSuamBTTMKsw6HUwh9yvKTB7IIKlqYuPJqtZ1otEMiGQOh1tGSKO1x7xHJqcSQ++qaG4F75s9ddWW2AzFMdtLel mana@mananoMacBookAir.local

qiita.com

ゲストOSに公開鍵を配置します。

# rootでログインします。
$ ssh root@192.168.0.6
root@192.168.0.6s password: 

# 公開鍵を配置用ディレクトリを作成します。
$ mkdir /home/mana/.ssh

# 所有者に読み書き実行権限を付与します。
$ chmod 700 /home/mana/.ssh

# ディレクトリと中身の所有者を変更します。
$ chown -R mana:mana /home/mana/.ssh/

# 権限を確認します。
$ ls -la /home/mana/
合計 40
drwx------. 4 mana mana   121  81 23:00 .
drwxr-xr-x. 4 root root    33  68 21:27 ..
-rw-------. 1 mana mana 20968 1025 01:20 .bash_history
-rw-r--r--. 1 mana mana    18  83  2016 .bash_logout
-rw-r--r--. 1 mana mana   193  83  2016 .bash_profile
-rw-r--r--. 1 mana mana   231  83  2016 .bashrc
drwx------. 2 mana mana    29  81 23:18 .ssh
-rw-rw-r--. 1 mana mana   218  712 00:37 err.txt
drwxrwxr-x. 3 mana mana    19  77 00:15 mnt

# ログアウトします。
$ logout
Connection to 192.168.0.6 closed.

# SCPで公開鍵をMacからゲストOSへ配置します。
$ scp .ssh/id_rsa.pub mana@192.168.0.6:~/.ssh/authorized_keys
mana@192.168.0.6s password: 
id_rsa.pub                                                              100%  409   311.1KB/s   00:00 

Linuxコマンド集 - 【 chmod 】 ファイルやディレクトリのアクセス権を変更する:ITpro
Linuxコマンド集 - 【 chown 】 ファイルやディレクトリの所有者を変更する:ITpro
webkaru.net

MacからゲストOSへRAS鍵認証で接続してみます。

接続方法はパスワード認証と同じですが、入力するのがパスワードではなく鍵のパスフレーズとなります。

$ ssh mana@192.168.0.6 # <------------- 鍵作成時に入力したパスフレーズを入力
Enter passphrase for key '/Users/mana/.ssh/id_rsa': 
Last login: Wed Oct 25 01:20:33 2017 from 192.168.0.4

接続できました。

次は、Windows10(ネットワーク内のPC)からもRAS鍵認証でログインできるようにします。
ponsuke-tarou.hatenablog.com