SSHの公開鍵認証の設定手順

個人的にLinuxサーバを利用する機会があり
その時に公開鍵の設定を行ったので手順を残す。

各種環境

クライアントPC:Mac book air
サーバ:Conoha VPS Ubuntu 14.04.5

クライアント側で鍵の生成

クライアントPCで秘密鍵と公開鍵の生成を行います。
鍵生成コマンドを2種類ありますが今回はRSAで生成を行います。

$ ssh-keygen -t rsa

実行すると対話式で鍵の保存場所やパスフレーズを聞かれますので
任意の設定を行う。

問題なく鍵が生成されたか確認を行う。

$ cd ~/.ssh/
$ ls id*
id_rsa		id_rsa.pub

上記のように「id_rsa」と「id_rsa.pub」が生成されていればOK
ちなみに「id_rsa」が秘密鍵で「id_rsa.pub」が公開鍵である。
くれぐれも秘密鍵が外部に漏れないように注意してほしい。

サーバに公開鍵を登録する。

先ほど生成した公開鍵をサーバに登録するので
scpコマンドでサーバに公開鍵を転送させる。

scp -r ~/.ssh/id_rsa.pub root@<サーバのIPアドレス>:/root/

とりあえずサーバの/root/直下に転送。
そこからサーバの「authorized_keys」に公開鍵を登録する。

# ls /root/
id_rsa.pub
# cat id_rsa.pub >> ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys
# logout
$ ssh -i ~/.ssh/id_rsa root@<サーバのIPアドレス>

lsコマンドで/root/に公開鍵が転送されているのを確認し、
authorized_keysに登録する。
その後、パーミッションの変更を行い一度サーバからログアウトする
再度sshコマンドでログインを試みる。