1. makies
Changes in body
Source | HTML | Preview

公開鍵と秘密鍵とは

ざっくりと。

公開鍵

サーバー側に持たせておく鍵。
作ったときには「id_rsa.pub」という名前で作成され、
基本的には「authorized_keys」という名前にリネームする。
複数の公開鍵を作る場合は、authorized_keysに追記していく。

秘密鍵

クライアント側で保有しておく鍵。
誰にも渡してはいけない。

鍵を作る

では、実際に鍵を作ってみる。

その1:sshでサーバにつなぐ

まずは、クライアント側からサーバにパスワード認証でリモートログインします。
それか、サーバ側で直接操作します。

クライアントからsshでつなぐコマンドは

command
$ ssh [ログインユーザID]@[サーバアドレス]

例:$ ssh hogehoge@example.com

01.png

です。
サーバ側で直接操作する場合は、この操作はスキップします。

その2:鍵を作る

ではサーバ側で鍵を作りましょう。

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は消す!

なので、以下のコマンドを実行します。

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に移動します。

リモート操作の方は、以下のコマンドをに実行します。

command
$ logout
$ scp [サーバのユーザID]@[サーバのアドレス]:~/.ssh/id_rsa ~/.ssh/

例:$ scp hogehoge@example.com:~/.ssh/id_rsa ~/.ssh/

02.png

これでid_rsaファイルがクライアントPCの.sshフォルダにダウンロードされます。

その5:クライアント側で秘密鍵の設定

先に以下のことを押さえておいてください。


  • 秘密鍵(id_rsa)のパーミッションは600に!
  • .sshフォルダのパーミッションは700に!
  • id_rsaファイルは半角英数の好きな名前に変更して良い!

ということなので、以下のコマンドを実行します。

command
$ cd ~/.ssh/
$ chmod 600 id_rsa
$ mv id_rsa [好きな名前]
$ chmod 700 ~/.ssh

その6:鍵認証でサーバにアクセスしてみる

sshコマンドでサーバに鍵認証を使って接続してみます。
鍵の作成・設定が成功していると、パスワードを求められずに接続できます。

command
$ ssh –i ~/.ssh/[鍵の名前] [ログインユーザID]@[サーバアドレス]

例:$ ssh -i ~/.ssh/example_server hogehoge@example.com