2009年10月27日火曜日

last.fmのWidget、ssh鍵認証設定

bloggerのデフォルトだと寂しいので、last.fmのWidgetを追加してみました。


僕のiTunesの再生履歴からジャケットをランダムな位置に表示するというもの。
なかなかオシャレなWidgetで気に入ってます。

お勉強環境の設定ですが、本日はログイン環境をチョットだけセキュアに。

・Macのデフォルト環境からサーバに対して鍵認証で接続
・サーバ側を一般ユーザでのパスワード認証を禁止
・サーバ側をrootユーザで直接リモートログインを禁止

っという環境を作ってみました。

まずMac側でターミナルを立ち上げて鍵認証の為の秘密鍵、公開鍵の二つのファイルを作成します。
この時にRSA、DSAという二つの暗号化方式を選択しますが、一般的にRSAの方が鍵となるデータ量が多く複雑なデータを用いるのでDSAよりも強固と言われているので、今回はRSAを選択します。
作成方法はこんな感じ。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user_id/.ssh/id_rsa): [ENTER]
Enter passphrase (empty for no passphrase): [複合化のフレーズ]
Enter same passphrase again: [同じフレーズ]
Your identification has been saved in /Users/user_id/.ssh/id_rsa.
Your public key has been saved in /Users/user_id/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX user_id@client_host.local
The key's randomart image is:

この時に作成される"id_rsa"というファイルが秘密鍵、"id_rsa.pub"というファイルが公開鍵のファイルです。
クライアント側に秘密鍵、サーバ側に公開鍵を置いてログイン時には二つの鍵を複合化する為のパスフレーズを入力してログインという形。

サーバ側に秘密鍵を渡す時にはscpコマンドを使用。

$ scp /Users/user_id/.ssh/id_rsa.pub user@serverhost.local:/home/user/id_rsa.pub
id_rsa.pub 100% 403 0.4KB/s 00:00
$

サーバ側のログイン時に使用するIDのホームディレクトリの直下に".ssh"というディレクトリを作成してscpコマンドでコピーした公開鍵をそこに移動させます。
"id_rsa.pub"を"authorized_keys"という名前にリネームし、パーミッションを"600"に変更すれば鍵認証によるリモートログインが可能となります。

ターミナルからsshログインすると、

っというポップアップウィンドが開くのでパスフレーズを入力してログインできれば成功です。

今度はリモートでのrootユーザでのログインを禁止、一般ユーザのパスワード認証でのログインを禁止します。
編集すべきファイルは、"/etc/ssh/sshd_config"です。
ファイル内に記載されている"PermitRootLogin"のコメントを外して引数を"no"に変更。
同じく"PasswordAuthentication"の引数を"no"に変更。
sshdを再起動させれば有効化されます。

# /etc/init.d/sshd restart
sshd を停止中: [ OK ]
sshd を起動中: [ OK ]
#

1 件のコメント: