.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

OpenSSH DSA(RSA)認証方式で認証を行う

ここでのクライアントとは、メインのインターネットサーバーとなります。SSH サーバーに対する認証方法はいくつかありますが、ここではDSA(RSA)による認証鍵を使用した認証を行います。つまり、有効な鍵がなければ、セッションが確立できない認証方式です。

クライアント側の準備

流れとしては、サーバー管理者から証明書を発行する HTTPSのクライアント認証や、Zebedee とは違い、クライアント(ユーザー)側から公開鍵を提出し、サーバー管理者がそれを受理することで本人確認を行います。

Open SSH プロトコル2 DSA鍵の場合

先に説明したとおり、鍵にはプロトコル1 プロトコル2 があります。基本的に互いに互換はありません。鍵を作成する場合は、接続先がどのプロトコルなのか知っておく必要があります。ここでは、プロトコル2 に限定しています。

接続を行なうユーザーになり、ユーザーのホームディレクトリで以下を実行します。

[centos@centos.com ~]$ ssh-keygen -b 1024 -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/centos/.ssh/id_dsa):

鍵の保存場所を指定。そのまま Enter した場合、デフォルトではホームディレクトリ ~/.sshとなります。ssh-keygen の詳細は man で確認してください。

Enter passphrase (empty for no passphrase):

証明書のパスフレーズを入力します。クライアント認証の最にこのパスワードが要求されます。そのまま Enter した場合は、鍵の認証だけでそのままSSHサービスが開始されます。Apache SSLと同じです。

ファイル名の指定を行なわなかった場合は、以下のファイルが生成されます。
~/.ssh/id_dsa (dsa秘密鍵)
~/.ssh/id_dsa.pub (dsa公開鍵)

この公開鍵 id_dsa.pub をサーバー側へ安全な方法で提出します。 この時、暗号化保護されていないネットワークを使って提出するのは やめて下さい。また、root ユーザーで接続するような危険な行為は 決して行なってはいけません。パスフレーズも与えないとなると自殺行為に等しいです。( SSHでは rootユーザーによる接続は行なえないようになっていたと思います。)

公開鍵認証を行なう ~SSHサーバー側の設定

SSHサーバーとなるユーザーのホームディレクトリに以下のファイルを設置します。

(デフォルトpath)
~/.ssh/authorized_keys

authorized_keys ファイルに、SSH 接続を行なうクライアントから渡された公開鍵の内容を記述する事で公開鍵認証が可能になります。

$ cat id_dsa.pub >> authorized_keys

このLinuxユーザー以外が読めてはいけません。ユーザーのみ読み込み/書き込みを許可します。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

他のユーザーにもこのサーバーのこのユーザーアカウントの使用をみとめる場合は、同様に、RSA又はRSS プロトコル2 バージョンのOpen SSH 公開鍵を提出してもらい

$ cat userHogeHoge_dsa.pub >> authorized_keys

を実行し、authorized_keys へ追記します。これでクライアント認証が実現します。

今回は、Linux 同士の接続ですが、基本的にこれだけでリモートログインが可能になります。Windows にも SSH Open SSH クライアントがあります。これらのツールを使って、鍵の作成、SSH2 接続を行なうことも出来ます。linux windows であっても設定に違いはありません。

bottom_mark
ページ最上部
ページ最上部 前のページ