1. nnahito

    Posted

    nnahito
Changes in title
+【秘密鍵/公開鍵】コピペで出来る!鍵認証の設定方法
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +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は消す!**
+
+---
+
+なので、以下のコマンドを実行します。
+
+```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
+```