鍵認証〜公開鍵の登録とsshd_configの設定

※スペルミス修正(2011,03,28):2カ所記述ミスがありました。authorizes_keys→authorized_keys
※以下は、リンク先も含めて、RSA鍵(ssh version2)で鍵を作って設定をするやり方です。

●以下のメモで言うところの、「sshで接続する側(個人PC、クライアント側)で鍵ペアを作って、リモートーホスト側(ssh接続される側)に公開鍵を送る」パターンの設定です。
http://d.hatena.ne.jp/midori_kasugano/20100125/1264424662

●鍵ペアの作り方は、以下を参照してください。
http://d.hatena.ne.jp/midori_kasugano/20091216/1260969466

■概要
◎公開鍵を~/.ssh/authorized_keysに置き、パーミッションを700 or 600にする。 → 詳細の(1)
◎sshd_configの設定をし、sshdをrestart → 詳細の(2)〜(4)

■いるもの
◎root権限
■詳細
(1)鍵ペアを作って公開鍵をリモートホスト側(ssh接続される側)に送り、~/.ssh配下にauthorized_keysというファイル名にして保存する。

shell> scp id_rsa.pub ユーザー名@119.15.XX.XXX:~/

↑119.15.XX.XXXに指定したユーザー名で接続し、指定したユーザー名のホームディレクトリに公開鍵を送る。

shell> cd ~/

↑ホームディレクトリに移動

shell> cp id_rsa.pub ~/.ssh/authorized_keys

↑公開鍵をauthorized_keysというファイル名にして保存する
※ホームディレクトリ配下に.sshというディレクトリがなければ、mkdirで作ってください。

shell> rm id_rsa.pub

↑scpした公開鍵を削除

(2)sshd_configの設定

shell> sudo su -

↑rootに変身

shell> cd /etc/ssh

↑sshd_configがあるディレクトリに移動
※以下、書き換え処理をする前に、下記の例のようにバックアップを取っておきましょう!
(shell> cp sshd_config sshd_config_default)

shell> vim sshd_config

↑エディタでsshd_configを開く

(3)sshd_config書き換え 
(以下の部分のコメントアウトをはずします。yes, noの部分は以下のように書き換えてください。)

◎以下の部分で、公開鍵認証だけのsshログインにします。

PubkeyAuthentication yes          
→公開鍵認証を許可(ssh2のみ)
AuthorizedKeysFile   .ssh/authorized_keys
→公開鍵の場所を指定
PasswordAuthentication no
→パスワードでのログインを禁止(鍵方式でのみログイン許可) 

◎ついでに以下の設定もしておきましょう。

PermitRootLogin no
→rootでのログインを禁止
PermiyEmptyPasswords no
→パスワードなしのログインを許可しない
AllowUsers ユーザー名1 ユーザー名2
→ログインできるユーザーを限定する

※AllowUsersがない場合は、ファイルの最後にでも書き加えてください。ユーザー名は、半角スペースで区切ることで、何人でも追加できます。

(4)rootのままsshdを再起動します。

shell> service sshd restart

私は、これで動きましたー。しかし、鍵認証方式が複数種類があるらしく、私は、まだその種類の違いを理解していません。まだまだ勉強しなきゃなー。