秘密鍵・公開鍵
提供: オレッジベース
目次
概要
- ~/.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>