【ssh鍵ベース認証】色付きコマンド

## イントロダクション
sshの鍵認証の記事がいっぱいあるけど、色付きでどこでコマンド記載
ディレクトリを考慮しなくてコマンドが通る記載にしております

## 構成
<font color="Blue">**青**</font>のサーバーで実行する項目は青で記載
<font color="Green">**緑**</font>のサーバーで実行する項目は青で記載
![ssh_flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503395/1e3340a1-b6e9-e85f-9919-133b0b6665f9.png)

## 手順<font color="Blue"> 青 </font>
$ **<font color="Blue"> uname -n </font>**
　☆<font color="Blue">青</font>のサーバー名であることを確認

$ **<font color="Blue"> whoami </font>**
　☆<font color="Blue">青</font>のサーバでsshを実行したいユーザーであるか確認

$ **<font color="Blue"> ssh-keygen </font>**
　☆対話形式になるので、脳死で **enter** 連打

```hoge:実行例
[zumi@DESKTOP-9JGK6V3:zumi]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/mnt/c/Users/4433a/zumi//.ssh/id_rsa):
Created directory '/mnt/c/Users/4433a/zumi//.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /mnt/c/Users/4433a/zumi//.ssh/id_rsa.
Your public key has been saved in /mnt/c/Users/4433a/zumi//.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:g/I/Aan7N7bCGw8/e8Uf3gtFXjU2e9L+aMLuZA8jx/8 zumi@DESKTOP-9JGK6V3
The key's randomart image is:
+---[RSA 2048]----+
|               +.|
|              ..=|
|       .      .o+|
|      o.      ooo|
|    ....S  .   o.|
|    .o  .. oo o..|
|     o+  ...X+oo.|
|    . o** .* B+ .|
|     .o=*B .o ooE|
+----[SHA256]-----+
[zumi@DESKTOP-9JGK6V3:zumi]$
```
$ **<font color="Blue"> ls -l ~/.ssh/ </font>**
　☆**id_rsa** と **id_rsa.pub** が作成されていることを確認

```hoge:実行例
[zumi@DESKTOP-9JGK6V3:zumi]$ ls -l ~/.ssh/
total 0
-rwxrwxrwx 1 zumi zumi 1679 Apr  9 20:11 id_rsa
-rwxrwxrwx 1 zumi zumi  402 Apr  9 20:11 id_rsa.pub
[zumi@DESKTOP-9JGK6V3:zumi]$
```

$ **<font color="Blue"> cat ~/.ssh/id_rsa.pub </font>**
　☆標準出力になんか出てくるので**メモ帳にでもコピペしとく**。

```
[zumi@DESKTOP-9JGK6V3:zumi]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAJ31e5uYyonmsgApdZ2jdXxlxgqI9sb+2Vyq0BfCXRGZykeiC29URTPAF+Zw9jKY9rtSiWGr1c1fF0yjf1JKDV6X9uj/aKPIzT8VhV8dRPRD14XGKL5DvQqV/f3IS3SoVWXTiJFODTQ04ER3cFIQ2Jb6BEbb045mNasFE8O1Ou6aKrbJrE5r6TWPahcMHTQYPHYQg+Xg36xMiT7n+2ggXJM2/bs22g6oBjSms/nUAmmBJ6myrRQAbHaQVH7YBJ2OvK9gtpseMXRbWJN5HTntClg1G1k5nuOoWjfD4dGaq5TNPwTIsGi/MjmdMhUy349/pSmVbgLRHYaYZJSenniel zumi@DESKTOP-9JGK6V3
[zumi@DESKTOP-9JGK6V3:zumi]$
```

## 手順<font color="Green"> 緑 </font>
$ **<font color="Green"> uname -n </font>**
　☆<font color="Green">緑</font>のサーバー名であることを確認

$ **<font color="Green"> whoami </font>**
　☆<font color="Green">緑</font>のサーバでsshでログインするユーザーであるか確認する

$ **<font color="Green"> ls -ld ~/.ssh/ || { mkdir ~/.ssh/ && ls -ld ~/.ssh/ ; } </font>**
  ☆.ssh ディレクトリを作成

```hoge:実行例（ディレクトリある場合）
cozftro@virtual-server101:~$ ls -ld ~/.ssh/ || { mkdir ~/.ssh/ && ls -ld ~/.ssh/ ; }
drwxrwxr-x. 2 cozftro cozftro 6  4月 12 20:26 /home/cozftro/.ssh/
cozftro@virtual-server101:~$
```

```hoge:実行例（ディレクトリ無い場合は、無いこと確認してから作成）
cozftro@virtual-server101:~$ ls -ld ~/.ssh/ || { mkdir ~/.ssh/ && ls -ld ~/.ssh/ ; }
ls: /home/cozftro/.ssh/ にアクセスできません: そのようなファイルやディレクトリはありません
drwxrwxr-x. 2 cozftro cozftro 6  4月 12 20:26 /home/cozftro/.ssh/
cozftro@virtual-server101:~$
```
$ **<font color="Green"> chmod 700 ~/.ssh/</font>**
  ☆前項で作成したディレクトリのパーミッションを変更

$ **<font color="Green"> vi ~/.ssh/authorized_keys</font>**
  ☆<font color="Blue"> 青 </font> の画面で出力した **~/.ssh/id_rsa.pub** の中身を追記する

$ **<font color="Green"> chmod 600 ~/.ssh/authorized_keys</font>**
  ☆前項で作成したファイルにパーミッションを変更

## 手順<font color="Blue"> 青 </font>
$ **<font color="Blue"> ssh -l <</font>**<font color="Green">緑のサーバーで作業したユーザー名</font>**<font color="Blue">> <</font>**<font color="Green">緑のサーバー名</font> or <font color="Green">IP</font>**<font color="Blue">></font>**
　☆ ssh の際にパスを聞かれずにログインできることを確認

**※ パスワードを聞かれる場合**
$ **<font color="Blue">ls -ld ~/.ssh/</font>**
  ☆ パーミッションが**700**を確認。なってないなら修正。
　`chmod 700 ~/.ssh/`


$ **<font color="Blue">ls -l ~/.ssh/id_rsa</font>**
  ☆ パーミッションが**600**を確認。なってないなら修正。
　`chmod 600 ~/.ssh/id_rsa`

## 参考文献
- RedHat<br>
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/s2-ssh-configuration-keypairs