サーバー構築超入門メモ(2):SSH公開鍵認証の設定
- 2014/06/04 (Wed) |
- linux |
- CM(0) |
- Edit |
- ▲Top
SSH(Open SSH)公開鍵認証を使えるようにする
前回はSSHデーモンの設定で、とりあえずパスワード認証を使えるようにしておいたが、本当は公開鍵認証に切り替えないといけない。公開鍵認証というのは……あまり理屈は良く分かってないのだが(汗)どうやら秘密鍵と公開鍵の2つで認証する方式であるということは間違いない。(苦笑)
その2つの鍵を作るツールはいくつかあるので、慣れてる人はそれをそのまま使えばいいだろうし、そうでなければ本などを読んでそれに従えば大体間違いないと思っていいだろう。
ここでは筆者が今まで使った2つの方法を紹介する。
①ssh-keygen
LinuxOSを使っていて、sshdとsshの二つがインストールされていればこのコマンドも入っている(多分)。鍵を作る暗号アルゴリズムにはDSAとRSAというのがあるが、ここではDSAを使った例を紹介する。まずSSHを使ってログインさせたいユーザーででOSにログイン(この例では「hoge」というアカウントを使用)した後、自分のホームディレクトリで必要なコマンドを入力していく。
[hoge@ap] $ pwd
/home/hoge
[hoge@ap] $ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_dsa): [ここはエンターキーを押すだけ]
Enter passphrase (empty for no passphrase): [パスフレーズを入力]
Enter same passphrase again: [同じパスフレーズを入力]
(この後公開鍵と暗号鍵を生成した結果が表示される)
[hoge@ap] $ ls -aF
./ ../ .bash_history .bash_logout .bash_profile .bashrc .ssh/
[hoge@ap] $ ls -aF .ssh
./ ../ id_dsa id_dsa.pub
[hoge@ap] $ cd .ssh
[hoge@ap] $ cat id_dsa.pub >> authorized_keys
[hoge@ap] $ chmod 600 authorized_keys
[hoge@ap] $ cd ..
[hoge@ap] $ chmod 700 /home/biotopos/.ssh
ssh-keygenコマンドを使うことで.sshというディレクトリに id_dsa と id_dsa.pub という2つのファイルが生成される。これらはそれぞれ順に秘密鍵と公開鍵ファイルという扱いになる。
このうち公開鍵であるid_dsa.pubファイルを名前を「authorized_keys」に変えてコピーすると、OpenSSHがこのファイルを公開鍵として利用するようになる。
その後、各種SFTPツールを使って秘密鍵ファイル(id_dsa)をローカルホストにコピーしたら、それをteraterm等のコンソールツールに公開鍵認証時の秘密鍵として指定すればよい。
②puttygen
SFTPツールは各種あるが、いくつかのツールではputtyというコンソール端末ツールが使う形式の秘密鍵ファイルでないと受け付けないことがある。(例:WinSCP)
このため必要であればputtygen.exe をインターネットからダウンロードしてくる必要がある。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
ツール自体の使い方は簡単で、ローカルホストで最初から秘密鍵と公開鍵の両方を作成したければ「generate」というボタンを押し、その後「Save plivate key」と「Save public key」のボタンをそれぞれ押して、ファイルに保存すればいい。
既にリモートホスト側(つまりサーバー側)で鍵自体は作成済みで、秘密鍵をローカルにダウンロード済みであれば「Load」ボタンを押してファイルを指定すれば、パスフレーズの入力を済ませたあとにputtyで使う形に変換してくれる(本当は名前だけ変えて中身は同じなんじゃ? 未確認だけど)。その後「Save private key」ボタンを押して、putty.ppk というファイルを作れば、以後それを秘密鍵ファイルとして使えるようになる。
パスワード認証を不可にする
前回sshdの設定で、パスワード認証を可能にしていたが、公開鍵認証ができるようになった後ではこの設定はただの脆弱性に過ぎない。このためパスワード認証は不可にする。sshd_configファイルを変更して保存したら、sshdを再起動すればよい。
[root@ap] vi /etc/ssh/sshd_config
....
....
PasswordAuthentication yes ←これをyes に変える
...
これ以後はrubyなりrailsなりをインストールしていけばよいのでサーバ構築の話はここでおしまい、としたいところだが、ファイアウォール(パケットフィルタ)の設定はまだhttpとhttpsの送信を許可していないのでyumやrubygemが動かない等、再度ファイアウォールの関係で問題が起きることが予想される。ということで、その辺は次回に。
参考文献・URL:
CentOS6で作るネットワークサーバ構築ガイド 秀和システム刊
Linuxサーバーセキュリティ オライリー刊
PR
カレンダー
フリーエリア
最新CM
最新記事
(06/05)
(06/04)
(06/04)
(11/18)
(11/18)
ブログ内検索
最古記事
(09/15)
(09/20)
(09/27)
(09/27)
(10/11)
COMMENT