秘密鍵・公開鍵

提供: オレッジベース
移動先: 案内検索

概要

  • ~/.ssh
    • permission : 700
    • 基本的に秘密鍵や公開鍵を置いておくところ。
  • id_rsa
    • permission : 600
    • 秘密鍵
    • 誰にも渡しちゃダメ。
  • id_rsa.pub
    • permission : 600(一応、600。どうせ消すのでなんでもいい。)
    • 公開鍵
    • 登録するすべてのサーバーの authorized_keys に内容を追記。
    • authorized_keys に登録後はこの世から抹消してよい。
    • 必要になったらまた id_rsa から作れる。
  • authorized_keys
    • permission : 600
    • 登録された id_rsa.pub の内容が記載される。
  • ~/.ssh/config
    • permission : 600
    • ssh接続の設定を保存しておく。

秘密鍵・公開鍵の作成

クライアント、サーバーのどちらで作ってもよいがクライアント側で作成した方が無難?
サーバー側で作成したら削除するのが普通。

$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa -b 4096 -C "<COMMENT>" -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): ←何も入力しないのもあり
Enter same passphrase again:
Your identification has been saved in <ID_RSA_PATH>
Your public key has been saved in <ID_RSA.PUB_PATH>
The key fingerprint is:
SHA256:<NANIKA_MOJIRETSU>
The key's randomart image is:
+---[RSA 4096]----+ ←適当なこんなのが表示される
|  o  o           |
|      oo         |
|           ..o   |
| o   .oo.        |
|   . .o  o . +o  |
| .o      . * o.+ |
|oo      o o = .. |
| .*=   + .  oo   |
| .*        o=  +o|
+----[SHA256]-----+

$ chmod 600 ~/.ssh/id_rsa
$ chmod 600 ~/.ssh/id_rsa.pub

サーバーの設定

$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh

scp なりなんなりで authorized_keys を ~/.ssh/. に配置

$ cat ~/.ssh/id_rsa.pub >> authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub

登録するサーバーの数だけこれを繰り返す。

クライアントの設定

$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh

scp なりなんなりで id_rsa を ~/.ssh/. に配置

秘密鍵から公開鍵を作成

$ ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
$ chmod 600 ~/.ssh/id_rsa.pub

秘密鍵と公開鍵の認証で ssh ログインするための設定

$ vim /etc/ssh/sshd_config

以下のように修正

PasswordAuthentication no
sshのログイン時にidとpasswordでのログインを認めない。(秘密鍵を使った認証しか認めない。)

PermitEmptyPasswords no
空のパスワードを認めない。秘密鍵のパスワードは空でもOK。

ChallengeResponseAuthentication no
チャレンジレスポンス認証を認めない。これを yes にすると PasswordAuthentication no にした意味がなくなる。

あとは通常デフォルト値で問題ないはず。

~/.ssh/config

$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config
$ vim ~/.ssh/config
Host <NANTOKAKANTOKA>
    HostName <domain.com>
    IdentityFile <ID_RSA_PATH>
    User <USER_NAME>
    TCPKeepAlive yes
    Port <PORT>