tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

公開鍵と認証鍵

昨日、認証鍵を作成してgithubに渡す作業を行いました。
そもそも、認証鍵、公開鍵、ssh認証鍵、それらがなんなのかわかっていないので
まとめていきたいと思います。

秘密鍵と公開鍵

まず、公開鍵認証というものがあります。
これは鍵を二つ作ってそのうちの一つをサーバー側へ渡し
同じかたちの鍵であれば認証できる。

といったような認証システムのことです。

クライアントが持つ鍵のことを「秘密鍵
サーバー側に渡す鍵のことを「公開鍵」
と呼ぶそうです。

鍵というより、めちゃめちゃ長い合言葉のような感じでしょうか。

公開鍵認証のメリット

メリットとデメリットに関してです。
一つ一つ手間がかかる分ハイセキュアであるために、 git hubでもこの認証方式が採用されているのですね!

メリット ・パスワード認証に比べて文字数が長いので総当たり攻撃などの悪質なアクセスを防げる。
秘密鍵を持っているパソコンからの接続のみ許可し、鍵を持っていないパソコンからはログイン出来ないのでセキュリティが向上する。

デメリット ・鍵の管理に手間がかかる。
・今回のようにパソコンの故障で秘密鍵を紛失するたびに、鍵を作り直さないといけない。

公開認証鍵の作り方

もう一度認証鍵の作り方をおさらいしたいと思います。

・.ssh ディレクリを作成する。

$ mkdir .ssh
$ chmod 700 .ssh   

※.sshディレクトリのアクセス権限は本人しか読み書きできない権限(700)にします。
 

ssh-keygen コマンドを使って公開鍵と秘密鍵を作製してください。

$ cd .ssh
$ ssh-keygen

パスフレーズは特にこだわらなくてOKです!
適当にenter押してスキップしてください。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/xxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxx/.ssh/id_rsa.pub.
The key fingerprint is:
93:b3:41:fe:3a:cb:ba:f3:6b:99:fe:6f:d4:21:dd:fb xxxx@local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        .    . . |
|       o .  . o .|
|        S    o ..|
|         *  . .. |
|        .o..    .|
|      ..=.  .   E|
|      oBB=.o.    |
+-----------------+

上のような応答が返ってきます。
すると.sshの中に、 id_rsaid_rsa.pubが生成ます。
前者が秘密鍵、後者が公開鍵です。

これをコピーして、随所ペーストしていくことになります。
githubがいい例だと思いました。

cat id_rsa.pub

これで完成です。