security – SSH RSA 鍵のパスフレーズは必要ですか?

passphrase rsa rsync security ssh

私が今の仕事に就く前(中小企業)、私のオフィスにはネットワーク上にファイアウォールがなく、文字通り何もバックアップされていませんでした。今、私は専用のシステム管理者/ワンマンIT部門として署名したので、私はこれを変えるためにできることをしてきました。上司に我々がいかに脆弱かを説明した後、彼はバックアップサーバをいくつかセットアップすることを許可してくれました

今、私は毎日のバックアップを自動化できるように、すべてを設定しようとしています。これを行うには、ssh を通して rsync を使おうと計画しています。セキュリティのためにも、自動化の容易さのためにも、 ssh パスワードログインを無効にして、rsa 鍵の検証のみを使用することを計画しています。まあ、もし私が rsa のパスフレーズを設定しているなら、私はまだパスワードを入力しなければならないでしょうし、それは問題です

rsaのパスフレーズを持っていないことは、物事の安全性を著しく低下させるのでしょうか?会社の中でこの種のことについて何らかの手掛かりを持っているのは私だけなので、誰かが私のマシン上の端末を呼び出して(私が不在の時は常にロックされている)、バックアップサーバの一つにssh-inしてダメージを与えることをあまり心配していません。私はまだシステム管理の世界には非常に、非常に新しいですし、このようなことをするのは初めてですし、セキュリティ設定に穴を残したくありません

ここで問題のコンピュータはUbuntu 10.10、SME Server、OSX 10.6を実行しています

  77  eckza  2011-03-23


ベストアンサー

ご存知のように、パスフレーズがあなたに与える利点は、誰かがあなたの秘密鍵を読み取ることができた場合、彼らはそれを「使用することができない」ということです

誰かがその秘密鍵にアクセスできた場合、公開鍵で設定されているマシンにアクセスしたり、 危殆化したりするのは当然のことと考えるべきでしょう。.bash_history や .ssh/config のようなものは、たとえ .ssh/known_hosts が難読化されていたとしても、これを容易にするだけです

あなたの鍵にパスワードを持っていないことは、世界の終わりではありませんが、ここでは試してみて、これにもかかわらず、少し良い自分自身を確保するのに役立つ3つのアイデアがあります。(大物は2つ目、何もなければそれを読んでください)


  1. すべてのマシンとユーザで同じキーを使用しないでください。各マシン上の各ユーザ (この種のことをする必要がある) には、独自の鍵ペアを生成します。これにより、何がどこでsshできるかを細かく制御できるようになります

  2. authorized_keys ファイルにキーを追加する際に、特定のコマンドのみを実行できるようにロックしたり、特定のホストからのみ使用できるようにしたりすることができます

    man sshを参照して、command=とfrom=を検索してください

    構文は次のようなものです

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    つまり、そこに ‘rsync’ をポップして、’rsync’ だけがあなたのキーで呼び出され、IP アドレス 1.2.3.4 からのみ呼び出されるようにします。複数のIPは,で区切ることができます。ホスト名もサポートされています

  3. もう一つ思い当たるのは、sshd_config の ‘AllowUser’ ディレクティブです

    AllowUsers

    このキーワードの後には、スペースで区切ってユーザ名パターンのリストを付けることができます。指定すると、パターンのいずれかに一致するユーザ名に対してのみログインが許可されます。と ‘?’ は、パターン内のワイルドカードとして使用できます。ユーザー名のみが有効で、数値のユーザー ID は認識されません。デフォルトでは、すべてのユーザに対してログインが許可されます。パターンが USER@HOST の形をしている場合、USER と HOST は別々にチェックされ、特定のホストからの特定のユーザのログインを制限します

    これは基本的にユーザーが特定の場所からしかログインできないことを保証します。(ワイルドカードも使えますが) あなたの問題のすべてを解決するわけではありませんが、少なくとも他の人にとっては難しくなるでしょう

93  Pricey  2011-03-23


keychainのようなものを使えば、パスフレーズを持つことが苦痛でなくなります。これはパスワードなしのログインを使用するよりも若干安全であり、ここでの他の回答と組み合わせて使用することができます。PriceChildさんの回答はかなり良かったです

4  Faheem Mitha  2011-03-23


個人的にはRSAではなくDSAを使っていますが、これは主に私がいつも使っているものであり、それが「うまくいく」ことを知っているからですが、理論は同じだと思います。以下のdsarsaに置き換えることができます

ソースは?

$ ssh-keygen -t dsa

そして、.ssh/id_dsa.pubファイルの内容をコピー先のユーザーアカウントの.ssh/authorized_keysにコピーします

そうすれば、パスワードなしでソースとデスティネーションの間でsshできるようになるはずです

-4  Majenko  2011-03-23


タイトルとURLをコピーしました