CentOS7のSSH鍵認証設定メモまとめ

#CentOS7のSSH鍵認証設定メモまとめ
CentOS7でのSSH鍵認証設定のサーバ側から鍵ペアを作成するやり方を,
インフラエンジニアインターンが理解したところまでまとめます。

#仕様環境
PCのOS:Windows10
使用したソフト:VMware(仮想環境にCentOS7をインストール)、Tera Term

#クライアント側とサーバ側で作成する鍵ペアの違い
###**クライアント側**
クライアント側で鍵ペアで作成した場合は、AさんはAさんであると証明する鍵ペアが作られ、サーバ側はその公開鍵を登録することで、AさんによるSSH接続を許可します。

メリット
Aさん側で作ることで秘密鍵がネット上に流出するリスクがない点。

デメリット
複数人で動かすサーバでは、作業者が各々鍵をつくり、全員分の公開鍵をサーバに登録しなければならないので、手間がかる。

###**サーバ側**
サーバ側で鍵ペアを作成した場合は、サーバ側で作った公開鍵をもっており、作業者に秘密鍵を受け渡すことで、サーバにSSH接続する権限を作業者に付与します。

メリット
複数人で作業する際に、1つの秘密鍵を作業者全員に配るだけで良いので、手間がかからなくて済む。

デメリット
鍵の受け渡しや共有の際に、ネットを使えば流出の危険性がある。


#作成手順
###**1.サーバ側で鍵ペアを作る**
mykey2という名前で鍵ペアを作成します。
この作業で作った秘密鍵を、作業者に配布することになります。

```
[hikaru@localhost ~]$ ssh-keygen -f mykey2
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):#設定したいパスワードを入力
Enter same passphrase again:#パスワード確認再度入力
Your identification has been saved in mykey2.#秘密鍵...配布
Your public key has been saved in mykey2.pub.#公開鍵...サーバに登録
The key fingerprint is:
8d:25:9b:4b:df:9d:c1:f1:85:6a:41:5a:ff:d6:43:36 hikaru@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|            o    |
|           + . . |
|        . o . +E.|
|         B   +o++|
|        S . o o.=|
|       . o o . +.|
|        . . . o  |
|                 |
|                 |
+-----------------+
```

パスワードは何も入力せずEnterを押せば設定しないことも出来ます。

####・公開鍵を登録（authorized_keysに登録）

```
[hikaru@localhost ~]$ mkdir .ssh　# .sshディレクトリ作成
[hikaru@localhost ~]$ cd .ssh
[hikaru@localhost .ssh]$ touch authorized_keys #　authorized_keysファイル作成
[hikaru@localhost .ssh]$ cd ~
[hikaru@localhost ~]$ cat mykey2.pub >> ~/.ssh/authorized_keys　#公開鍵登録
[hikaru@localhost ~]$ chmod 600 ~/.ssh/authorized_keys　#パーミッションの設定
```

パーミッションの設定をしないと、認証が通らないので確実にやりましょう。

####・秘密鍵の保存
catコマンドで秘密鍵の中身を見てみると長い文字の羅列があるので、全てコピーしてテキストファイルを作成します。

```
[hikaru@localhost ~]$ cat mykey2
-----BEGIN RSA PRIVATE KEY-----#ここから
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,417B3E409A602CD99CB8FBE4D5EEBC52
...中略...
BHglzCkJsAiqn90or1vqlRHHN6J1RTVSu/s8frVYcltLdzX5e1bW4YEnf2JuN8mw
-----END RSA PRIVATE KEY-----#ここまでコピーする
```

###**2.クライアント側の秘密鍵設定**
素朴な疑問としてクライアント用に別の端末が必要なのではと思いましたが、同じPCからでもクライアントとしてアクセスすることが出来るということでした。
・秘密鍵を受け取る
しかし、今回は同じPCで試したので、そのまま保存した秘密鍵テキストファイルを使えました。

####・.ssh/configを編集（無ければ新規作成）

```
vi .ssh/config
Host localhost
  HostName localhost
  User hikaru
  IdentityFile ~/.ssh/mykey2
```

####・秘密鍵のパーミッションを設定
こちらも確実にやりましょう。
```
[hikaru@localhost ~]$ chmod 600 mykey2
```

####・クライアント側接続

```
[hikaru@localhost ~]$ ssh hikaru@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is f1:f2:a7:88:1e:df:1b:e7:90:0c:0f:f0:c7:49:29:72.
Are you sure you want to continue connecting (yes/no)? yes　#yesと答える
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/hikaru/.ssh/mykey2':
Last login: Fri Nov  4 15:56:23 2016 from 192.168.252.1
[hikaru@localhost ~]$
```


自身初投稿になります。最後までお読み頂きありがとうございました。

参考サイトリンク
http://qiita.com/kobake@github/items/d866392c07b03da099bf#%E3%82%B5%E3%83%BC%E3%83%90%E5%81%B4%E3%81%A7%E9%8D%B5%E3%83%9A%E3%82%A2%E3%82%92%E4%BD%9C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%89%8B%E9%A0%86