Linuxで公開鍵認証の設定

2月 27, 2010

※若干勘違いがあったようなので、大幅に変更しました。(2010/03/13)

LPICのレベル1、2ともに登場する、SSHの公開鍵認証の設定。
参考書を読んでもよく分からず苦手、と思っていたが、数年前に実務で利用しており
確か自分で設定したこともあったような、、、と思い出した。
何故今まで忘れていたのか不思議だが(汗)、改めてまとめてみた。

まず参考書で「クライアントで鍵ペアを作成」と書いてあるのが分かりにくい。
サーバへアクセスする際は、ローカルのPCから直接接続しにいったり、いわゆる「踏台サーバ」
がありそこから接続したり、様々な環境がある。また、サーバごとに鍵ペアを用意するか、
ユーザごとに鍵ペアを用意するか、などの違いもあるので、参考書通りのやり方になるとは限らない。


それに参考書には秘密鍵の扱いが書かれておらず、実際の流れがつかめない。
秘密鍵はユーザのローカルPC、あるいはアクセス元となる「クライアント」サーバに保管する。
scpやファイル転送ソフトで転送してもよいし、鍵の内容をテキストファイルに貼付けて保存してもいい。
要するに、鍵の中身がテキスト形式で保管されていれば、やり方はなんでもよいのである。


鍵の作成場所に関して言えば、
「サーバの~/.ssh/authorized_keysに公開鍵があり、秘密鍵は安全な場所に保管する」
この原則を踏まえていれば、鍵の作成場所はどこでもいいのかな、という気がする。

もう一度手順のおさらい。SSHバージョン2のRSAを指定する例。

アクセス元マシンで以下実行。
# su – test_user
$ ssh-keygen -t rsa
test_user用公開鍵id_rsa.pubと秘密鍵id_rsaが、~/.ssh配下に作成される。
公開鍵id_rsa.pubをアクセス先マシンに転送する。


アクセス先マシンで以下実行。
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys



上記は参考書通りの一例だが、やり方は他にもいろいろあるはず。
うまくまとまらないので、これくらいにしておくが、、、


ちなみにサーバへアクセスする際は、ローカルPCからであればGUIの画面で秘密鍵を指定すればよいが、
Linuxサーバ→Linuxサーバの場合、以下のように-iオプションに続けて鍵の場所を指定する。

$ ssh -i ~/.ssh/id_rsa リモートホスト名


関連記事
OpenSSHの利用

Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index

LPIC記事一覧
↓ ↓ ↓
LPIC-index

Categories: Linux

No Responses so far | Have Your Say!

Comments are closed.