For Want Of A Better Word

ssh 公開鍵認証 共通鍵認証関連まとめ

      2015/04/19

なんか、sshとか、秘密鍵とか、公開鍵とか、いろいろ曖昧だったので調査した覚書。

[実際の設定手順]

  • [参考]http://www.jitaku-server.net/ssh_crypto.html(とてもわかりやすい)
  • ①サーバーの設定
    • 1. パスワードではなく、鍵で認証するようにする。(/etc/ssh/sshd_config)
    • 2. 該当のユーザーでログインして、キーペアを作成する。
  • ②クライアントの設定
    • 秘密鍵をインポートして接続。

SSH公開鍵認証手続きとは

【参考】http://www.adminweb.jp/web-service/ssh/index4.html#section1

  • (1)まず、データの暗号化・復号化方式としての共通鍵認証と公開鍵認証があります。
    • ⇒共通鍵認証方式(秘密鍵)の問題点を解決したもの。共通鍵認証方式では、送信側-受信側両方が共通の秘密鍵を持ってデータをやり取りする。
    • この時の問題点は①鍵を最初にどうやって共有するか ②運用時個人ごとに秘密鍵を管理せねばならない。公開鍵はこの問題点を克服した認証方式です。
  • (2)公開鍵認証は
    • ⇒受信者が「公開鍵と秘密鍵」のワンセットを持ちます。これは下記の関係になっています。
      • ・公開鍵で暗号化したデータは「秘密鍵」でないと復号化できません。
      • ・秘密鍵で暗号化したデータは「公開鍵」でないと復号化できません。
    • 公開鍵は世間一般に公開されています。
    • 「受信者」にデータを送りたい人は「受信者の公開鍵」を取得します。
    • 「受信者の公開鍵」で送信したいデータを暗号化します。
    • デメリットもあります。
      • 基本的に一方通行の使い方しかできません。
      • 送信側に対して今度は受信側から暗号化したデータを送信しようとする場合、
      • 送信側で秘密鍵と公開鍵を作成し、公開鍵を公開しておく必要があります。
  • (3)ssh認証の具体的な流れ
    • A. 「公開鍵」と「秘密鍵」のワンセットを作成。
    • B. 公開鍵はサーバーに配置。秘密鍵はクライアントに配置します。
    • C. 秘密鍵の情報はさらに「パスフレーズ」をキーにして暗号化します。
      • (秘密鍵を使う場合=鍵認証するときは、このパスフレーズが必要ということ。 このパスフレーズは公開鍵と秘密鍵を生成する場合に設定する。)
    • D. この状態で、クライアントからサーバーに接続します。鍵認証スタート
      • D_1.(サーバー)サーバー上の公開鍵を取得。確認(公開鍵のフィンガープリントにより確認。)。
        • (この時既知のホストか判定する。 これがFingerPrint(指紋)。 既知でない場合は、管理者にフィンガープリントの確認を問い合わせるのが、安全な運用。)
      • D_2.(クライアント)クライアントローカルの秘密鍵を「パスフレーズ」により復号化。
      • D_3.(サーバー)適当なデータを公開鍵で暗号化してクライアントに送付。
      • D_4.(クライアント)公開鍵で暗号化されたデータを、クライアントローカル秘密鍵で解読。解読したデータを、サーバーに送付。
      • D_5.(サーバー)送付されてきたデータと元データを比較して、あっていたら認証OKとする。

調べた用語

rsaファイル
  • ⇒秘密鍵ファイル。
パスフレーズ
  • ⇒単純に長めの数十文字のパスワードのこと。
sshにおけるパスフレーズの使い方。
  • ⇒ユーザーを特定するための方法。 普通のパスワード認証だけだと、ユーザー名は自由に名乗れてしまう。アカウントロックの機構がないと、なんどでも再チャレンジできる。
  • ⇒そこで、まずユーザーをあらかじめ証明しよう、ということで秘密鍵のパスフレーズを知っているかを確認する。

④OpenSSH

sshでつなぐときの、「finger print」ってなんぞや。

<下記のような運用をすることが望ましい。そういうもんだったのね・・>
— ①公開鍵登録の確認メッセージが表示されたら、no を入力して中断する
— ②メッセージ中のフィンガープリントを控え、リモートホストの管理者にフィンガープリントの値が一致しているかどうかを確認する
— ③ 一致した場合は、再度リモートホストへ接続し、そのホストの公開鍵を ~/.ssh/known_host ファイルに登録する

sshで利用するファイル

  • ①公開鍵ファイル
  • ②秘密鍵ファイル
    • どっちも、中身はただのテキストで、公開鍵フレーズ 秘密鍵は「公開鍵フレーズと秘密鍵フレーズ」を含む。
  • [puttygenで生成した場合]
    • ①公開鍵⇒拡張子ない(—- BEGIN SSH2 PUBLIC KEY —-)
    • ②秘密鍵⇒ppkファイル(save時にパスフレーズの設定が可能。省略も可能。)
  • [OpenSShで作成した場合]
    • ①公開鍵⇒pubファイル
    • ②秘密鍵⇒拡張子なし

 - linux, インフラ

  関連記事

centos_logo
【Linux】HDD増設

【参考】 http://linux.blog.kaone.net/%E3%82% …

027
sendmailエラー dsn=4.4.3, stat=queued

CentOS sendmailでとあるアプリケーションからメール送信をしたときに …

027
Linux CentOS hdd増設 LVMへの追加 領域拡張 リンクまとめ

自宅サーバーのhdd増設をしたので、参考にしたリンクメモ。 拡張は結構簡単で、既 …

centos_logo
【Linux】TCP・UDPポートの疎通確認・アクセス元IPの確認をしたい

とある要件で自前のサーバーとUDPの疎通・アクセス元IPの確認をする必要が生じた …

centos_logo
【Linux】メール送信のテストでエラー

単純にpostfixを入れて、メール送信すると下記のエラーが出てしまうことが.. …