SSH
公開鍵
公開鍵認証方式
初心者入門

【秘密鍵/公開鍵】コピペで出来る!鍵認証の設定方法

More than 1 year has passed since last update.


公開鍵と秘密鍵とは

ざっくりと。


公開鍵

サーバー側に持たせておく鍵。

作ったときには「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を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