Linuxで公開鍵認証の設定
※若干勘違いがあったようなので、大幅に変更しました。(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