63鍵認証サーバの設定

63鍵認証サーバの設定

暗号化されているとはいえパスワードがインターネット上を流れるのはリスクがあります。そこで鍵ファイルを持っているユーザのみサーバにログインできるようにしてセキュリティを上げます。

これにはssh公開鍵認証を用います。公開鍵認証のためのキーペアはLinuxで作成し、Windows側に秘密鍵を渡して接続認証を行います。秘密鍵は、パスフレーズで封印します。つまり、パスフレーズとは秘密鍵が盗まれても他人には使えないようにしておくためのものです。

パスフレーズは
 ・簡単には類推されにくい長い文章にすること
 ・記号や数字や大文字小文字を混ぜること

例:This is a secret key.  ← 秘密鍵の封印を解くためのパスフレーズだということを忘れないようにしてください


1.ssh公開鍵認証の仕組み

Linuxサーバのパスワード認証を不可にし、ssh公開鍵認証のみ許可するよう設定を変更します。以下の設定を行うと、パスワード認証が不可になり、秘密鍵を持ったユーザしかログインできなくなりますので、細心の注意を払って設定してください。




2.鍵の生成と配布

(1)秘密鍵と公開鍵のキーペアを作成します。
一般ユーザ(guest)で行います。
以下のコマンドにより/home/ユーザ名/.sshディレクトリが作成され、その中に秘密鍵と公開鍵が作成されます。

〇キーペアの作成
[guest@aso ~]$ ssh-keygen -t rsa ← RSAアルゴリズムでキーペアを作成します
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guest/.ssh/id_rsa):enter
Created directory '/home/guest/.ssh'.
Enter passphrase (empty for no passphrase):This is a secret key. ← これは秘密鍵の封印を解くためのパスフレーズ
Enter same passphrase again:This is a secret key.
Your identification has been saved in /home/guest/.ssh/id_rsa.
Your public key has been saved in /home/guest/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uegjyEY7pDZyQRVXnE0YdJThqIuUFqN7O/NMkZcuLyg guest@aso.ict.jp
The key's randomart image is:
+---[RSA 2048]----+
|    ...++B=o     |
|    ..  ++o      |
|   .o   . .      |
|  .. + o o       |
| .. + + S        |
|  ++ . * .       |
| =.+o.= o        |
|ooE.==oo         |
|oo.o.=+o.        |
+----[SHA256]-----+
[guest@aso ~]$
[guest@aso ~]$ cd .ssh
[guest@aso .ssh]$ ls
id_rsa  id_rsa.pub
↑秘密鍵 ↑公開鍵

〇公開鍵の名前をSSH接続用に変更
[guest@aso .ssh]$ mv id_rsa.pub authorized_keys
[guest@aso .ssh]$

※.sshのアクセス権は700でないといけません
※.authorized_keysのアクセス権は644でないといけません

(2)秘密鍵を接続クライアント側(Windows)に送ります。
実運用上は、サーバ管理者が接続したいユーザに対面等相手を確認できる状況で秘密鍵ファイルを手渡しします。
今回は、TeraTermの「SSH SCP...」機能で転送します。

[guest@aso .ssh]$ cp /home/guest/.ssh/id_rsa  /home/guest
[guest@aso .ssh]$

TeraTermメニューバー → ファイル → SSH SCP...

From:id_rsa
to:Windowsのダウンロードフォルダを指定してください
ReceiveでWindows側に転送されます


受信できているかどうか確認してください


(3)sshdを設定して再起動

[guest@aso .ssh]$ su -
パスワード:
最終ログイン: 2021/09/17 (金) 18:16:10 JST日時 pts/0
[root@aso ~]# vi /etc/ssh/sshd_config
[root@aso ~]#

65行目を変更

PasswordAuthentication yes → no


sshdを再起動 

[[root@aso ~]# systemctl restart sshd
[root@aso ~]#


3.鍵認証で接続

新しくTeraTermを立ち上げてログインしますが、もう、パスワードではログインできません!!


秘密鍵を指定してログインします。
パスフレーズは秘密鍵の封印を解くためのものです。
よって This is a secret key.  を入力します。


無事接続できるはずです!!!


4.最後に

〇公開鍵の中身を確認しておきましょう
[guest@aso .ssh]$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiP2rHjHFZXCBeK83q6gRealxmiMenuniwbDflIJDdAYWz/dJG1Z4VO3GFq578JS4oYIdzAYF2ncoGHcUFlLssiMm0yDIFf2h8weTLOgF3BELpFiRRZCATAQ2Aiq20Wn90TuHeRRQ81qY4OklWSCtuf7zdRo6rcYhfhMT8P+p6Xvolfgt/Unu7BOKuM3Wybv/oyqb0o8E+qah04E6G49o51R82vpBtYM+L9BgQ1OWNzveJxvgehwlXuvYdGxw8osaY8Fn9ImRWOMfKekQnOiLTgxMpLwrSmkhXXk1aRDMR9JdQ+VxWE0egfievVk0LWlkEtwxv/TbClSOyWZ/JuEs3 guest@aso.ict.jp
[guest@aso .ssh]$
[guest@aso .ssh]$


〇秘密鍵の中身も確認しておきましょう
[guest@aso .ssh]$ cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,9C8263E371E159AEA2BDE6B29E42772E

UByeg9/3B9QuFMC+7tTb8Gi6ztqb6rrSue3iXObCZdgeMllpKroZXrM5wdzdzZ4v
MuIhhGISoyn8u201fE26oee3BGS11lAwRCuXhXmEExbK2HXbRClgOYL3aBsbyvpU
pXaC66I9YFfbOflI8BvYCJ7cAdyN7eyBhSkDbxSk8lQumnu4uor3FNJURxtkqDCL
XppjL2wjSU7lW43Sxi7aHVWBB/5gC/WHrCtugymSwYLg3IdLLZ//xnXH6zYXrJ3O
4K4BewL+nhUCEyZJRB74kfpm6xrBsSihZ4bZF7Ko4I7CskRL6nUG3p0cjwV83qce
5fJaPXEXkQM115Q+tfVzOOdYs6wfsMAPYpMKoAV88uuQZ/4x4rfota9tFnfFQubT
gmomnhoqqeXcgUPpyeeqIOo+LDxPRxbL3jOLcesDV4ha/woAndDalnHhwsbvaRGg
7U+hfTgzJfyBegPuoPVdaXbvYU9gW87uQ59sMK4sOVFENbOqPnLxmmUQRqOgEL6G
oI6xSebOw8cfHbOEfiH+oFOzoEWkfwRs0QQO2Gu0OPse943U4s4Wv6NFVtlE3tuo
kmvEM26MHxp4hbnjtboZD5Cn3vcWzzjqHC8dAmVshFkzwpk725x1/Qk9psQRGaz5
30ljJuSzImcrVul77RKVjVWnTtZ3m+XjAX0OeX/lgvyZ8SyEb6OZWQMRTy9IXVNg
F/myQ30U/DCELRCESpyki0XVJzRcx2OpmbUBBZusts6G0F3s3zxT2KggBrvKm/fg
hIaz28e57FWvH/gk6661MXStfl5XU1+ZNWACmIPSccIliLTRVZjaMTSGgVMyzb+y
2P05o/dmFuLIdOJ44916XWpvS+5aMPjtTMNxufqgyGMVHiUxFOUkvT4UEriMrt8n
A3SAACFlwgf7ZNY9cXNEm89fr9LV+WN5Dq5o3suvaXi8QjsDap6dPOcBK9NCLNEf
Ml3wJK++5tu6jg7ylxHheUqZh+o9CFcrgq23w/cmv3rXZN5iuXSKdqzm4Ly4xYfi
i4Eyh329TX/8Q4vjL4nVDURXefVxRICn6ZcN3LZxNUmQ7zz+q+hcpCBNB8L07UbF
G/xRYemmvyycFi0NutZoeBNkE1oiOLs3cAHVXEOyS1CFcvfiVf695r0a5pcEqAaG
32DUtrL8vGGyX5Gmh2zO1Lu+u6DDgbyoj7bgF32GyJmU+CrRgoRT+JYJHnNPIn78
of6gdpJs+FFkh/2Vby+gSNUsqv+UkKlqq9CFKFjiWjIAoUspbxo7PHKGluSr+AlF
ozJJjjgu8rP8PSHmVObYp9OcB2QH1wGRcZg6c+dN+4hYhkD03WIFq8gihursdNdF
QlkfvL+A0DGDNw0Cq7YjjHOgerdUVj7glDaQ/pb5HZ8Z1EzeX1kVIUA5tgvcoHCQ
ekls3BDe0LiaatQsKkH1mJFdzL3+b9FobPWXzU2aVzmyNMZx6gIMTsiWIA0gx88H
OGiVShTK1Sr7LeMgZaBIa6nf149abAtMneZyPcdVoQhqU7L4KUxvTjvxcym/+8x2
w83UNTAHjyLl/FhNHgGFVnXSS1S2UbXkhwUepL81tenXWqYtFCER6oR9Fa1ux0aB
-----END RSA PRIVATE KEY-----
[guest@aso .ssh]$


【報告

無事接続できたらWindows側に送った「秘密鍵」を個人チャットで講師宛送ってください。



【接続できなかったとき】

以下を確認してください!
     CentOS7の場合パーミッションは  /home/guestが700  .sshが700   authorized_keysが644
SSH に関連したフォルダは厳格なパーミッションを設定することを求められます。

具体的には
・「/home/(ユーザー名)/」のフォルダのパーミッションが「755」より厳しいこと
・「/home/(ユーザー名)/.ssh」のフォルダのパーミッションが「700」であること
・「/home/(ユーザー名)/.ssh/authorized_keys」のファイルのパーミッションが「600」か「644」であること
を確認してください。
 


【どうしてもうまくいかないときとき】

パスワード認証に戻しましょう!