1. makies
Changes in body
Source | HTML | Preview
@@ -1,121 +1,121 @@
# 公開鍵と秘密鍵とは
ざっくりと。
## 公開鍵
サーバー側に持たせておく鍵。
作ったときには「id_rsa.pub」という名前で作成され、
基本的には「authorized_keys」という名前にリネームする。
複数の公開鍵を作る場合は、**authorized_keysに追記**していく。
## 秘密鍵
クライアント側で保有しておく鍵。
誰にも渡してはいけない。
# 鍵を作る
では、実際に鍵を作ってみる。
## その1:sshでサーバにつなぐ
まずは、クライアント側からサーバにパスワード認証でリモートログインします。
それか、サーバ側で直接操作します。
クライアントからsshでつなぐコマンドは
```bash:command
$ ssh [ログインユーザID]@[サーバアドレス]
例:$ ssh hogehoge@example.com
```
![01.png](https://qiita-image-store.s3.amazonaws.com/0/63338/8f3d20c7-e2fd-f387-1264-ac3a54098266.png)
です。
サーバ側で直接操作する場合は、この操作はスキップします。
## その2:鍵を作る
ではサーバ側で鍵を作りましょう。
```bash:command
$ ssh-keygen -t rsa
```
実行するとパスワードを聞かれますが、基本的にEnterを押してスキップして大丈夫です。
このパスワードは、鍵ファイル自体にかけるパスワードです。
これで、サーバ側の`.ssh`フォルダの中に、
`id_rsa`(秘密鍵)と`id_rsa.pub`(公開鍵)というファイルが作成されます。
## その3:公開鍵の設定
先に以下のことを押さえておいてください。
---
- **公開鍵(authorized_keys)のパーミッションは600に!**
- **.sshフォルダのパーミッションは700に!**
-- **id_rsa.pubをauthorizued_keysに結合したら、id_rsa.pubは消す!**
+- **id_rsa.pubをauthorized_keysに結合したら、id_rsa.pubは消す!**
---
なので、以下のコマンドを実行します。
```bash:command
$ cd ~/.ssh/
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
$ chmod 700 ~/.ssh
$ rm id_rsa.pub
```
## その4:秘密鍵をクライアントへ転送
今度は、クライアント側のPCで操作をします。
サーバで直接操作をしている人は、USBか何かで、`~/.ssh/id_rsa`ファイルをクライアントPCに移動します。
リモート操作の方は、以下のコマンドをに実行します。
```bash:command
$ logout
$ scp [サーバのユーザID]@[サーバのアドレス]:~/.ssh/id_rsa ~/.ssh/
例:$ scp hogehoge@example.com:~/.ssh/id_rsa ~/.ssh/
```
![02.png](https://qiita-image-store.s3.amazonaws.com/0/63338/4520aeeb-b657-ecb7-f011-af6b957cad02.png)
これでid_rsaファイルがクライアントPCの.sshフォルダにダウンロードされます。
## その5:クライアント側で秘密鍵の設定
先に以下のことを押さえておいてください。
---
- **秘密鍵(id_rsa)のパーミッションは600に!**
- **.sshフォルダのパーミッションは700に!**
- **id_rsaファイルは半角英数の好きな名前に変更して良い!**
---
ということなので、以下のコマンドを実行します。
```bash:command
$ cd ~/.ssh/
$ chmod 600 id_rsa
$ mv id_rsa [好きな名前]
$ chmod 700 ~/.ssh
```
## その6:鍵認証でサーバにアクセスしてみる
sshコマンドでサーバに鍵認証を使って接続してみます。
鍵の作成・設定が成功していると、パスワードを求められずに接続できます。
```bash:command
$ ssh –i ~/.ssh/[鍵の名前] [ログインユーザID]@[サーバアドレス]
例:$ ssh -i ~/.ssh/example_server hogehoge@example.com
```