« CentOS で行なっておきたいセキュリティ設定 | トップページ | ConnectBot ~ 公開鍵認証にも対応した Android の SSH クライアントアプリ »

2012/03/20

CentOS で公開鍵暗号方式を使用した SSH ログイン設定



このエントリーをはてなブックマークに追加

はじめに

昨日の「CentOS で行なっておきたいセキュリティ設定」のエントリーは非常に反響が大きくて驚いてしまいました。みなさんの苦労がうかがえますね。

さて、前回のエントリーでは公開鍵暗号方式による SSH ログインについて割愛してしまいましたので、今回はこの設定を行いたいと思います(前回のエントリーにも反映済み)。

前回のエントリーの設定が済んでいるけれども、パスワードによるログインが有効な状態であることを前提とします。また、対象は CentOS 6.2 です。

内容は以下のようになります。

  • キーペアの作成
  • 秘密鍵でログインできるように設定
  • 秘密鍵の取得
  • Tera Term で秘密鍵を使用してログイン
  • 秘密鍵でのみログインするように設定
  • PuTTY で秘密鍵を使用してログイン
  • WinSCP で秘密鍵を使用してログイン

キーペアの作成

root 権限を持っているユーザーを使い SSH でログイン。ここでは sshuser。

su コマンドで root ユーザーに切り替える。

# su -

その後、sshuser に切り替え。一度 root アカウントを経由してキーペアを作成するのは、実際の運用に合わせてのこと。自分のキーペアなら自分のアカウントで作成可能。

# su sshuser

以下のコマンドを実行してキーペアを作成。OpenSSH は、SSH2 の DSA と RSA が利用可能(SSH1は割愛)だが、RSA の方が強度が高いため RSA でキーペアを作成する。鍵の作成場所はデフォルトで、パスワードを2回入力。なお、あまりおすすめできないが、パスワードを入力しなければ、秘密鍵を使用したログインの際に秘密鍵のパスワードを要求されなくなる。

# ssh-keygen -t rsa

これで、ホームディレクトリ/.ssh の下に、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成される。

下記コマンドを実行し公開鍵を配置する。パーミッションも 600 に設定。

# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys

 

秘密鍵でログインできるように設定

キーペアが作成できたら、秘密鍵でログインできるように設定。

# vim /etc/ssh/sshd_config

以下の行のコメントを外して保存。

PubkeyAuthentication yes

SSH のサービスを再起動。

# /etc/init.d/sshd restart

 

秘密鍵の取得

秘密鍵は本来なら USB メモリなどの物理メディアにで送付するべきだが、現実にはネットワークを介さないと取得できないことの方が多い。そのため、今回は WinSCP を利用して秘密鍵を取得する。

WinSCP を起動して「sshuser」でログインし、.ssh フォルダを開く。

WinSCP1

 

id_rsa ファイルをローカルにコピーする。

WinSCP2

 

Tera Term で秘密鍵を使用してログイン

Tera Term を起動しホストを指定。

WinSCP3

 

ユーザー名に sshuser、パスフレーズに秘密鍵のパスワード、秘密鍵に id_rsa を指定してログイン。

TeraTerm2

 

ログイン成功。

TeraTerm3

 

秘密鍵でのみログインするように設定

秘密鍵でログインできることが確認できたら、秘密鍵でのみログインするように SSH の設定を変更する。

# vim /etc/ssh/sshd_config

パスワードでログインできないように設定して保存。

PasswordAuthentication no

SSH のサービスを再起動。

# /etc/init.d/sshd restart

 

PuTTY で秘密鍵を使用してログイン

PuTTYgen で PuTTY 用の秘密鍵を作成

PuTTY(ごった煮版) で秘密鍵を使用してログインするには、PuTTYgen で PuTTY 用の秘密鍵を作成する必要がある。

PuTTYgen を起動して id_rsa を読み込み、秘密鍵を id_rsa.ppk として保存する。

PuTTYgen

 

PuTTY で秘密鍵を使用してログイン

PuTTY を起動して、セッションメニューでホストを指定し、SSH の認証メニューで PuTTY用秘密鍵の id_rsa.ppk を指定してログインする。

PuTTY1

PuTTY2

 

コンソールが開き、ユーザー名と秘密鍵のパスワードを入力するとログイン成功。

PuTTY3

 

WinSCP で秘密鍵を使用してログイン

WinSCP でログインするためには、 PuTTY 用の秘密鍵(*.ppk) が必要となる。

WinSCP を起動して、 ホスト名、ユーザー名に sshusere、秘密鍵に PuTTY 用秘密鍵の id_rsa.ppk を指定してログイン。

WinSCP2_1

 

秘密鍵のパスワードを聞かれるので入力。

WinSCP2_2

 

ログイン成功。

WinSCP2_3

 

参考サイト


このエントリーをはてなブックマークに追加




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/14182/44557397

この記事へのトラックバック一覧です: CentOS で公開鍵暗号方式を使用した SSH ログイン設定:

コメント

コメントを書く