web-dev-qa-db-ja.com

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

私が現在の仕事(中小企業)を始める前は、私のオフィスのネットワークにはファイアウォールがなく、文字通り何もバックアップされていませんでした。専用のsysadmin/one-man-IT-departmentとしてサインオンしたので、これを変更するためにできることを行っています。上司に私たちの脆弱性を説明した後、彼は私にいくつかのバックアップサーバーをセットアップすることを許可しました。その1つは自宅にあります。

現在、毎日のバックアップを自動化できるように、すべてを設定しようとしています。これを行うには、sshを介してrsyncを使用する予定です。セキュリティと自動化を容易にするために、sshパスワードログインを無効にし、rsaキー検証のみを使用することを計画していました。さて、RSAパスフレーズを設定している場合でも、パスワードを入力する必要がありますが、これは問題です。

Rsaパスフレーズがないと、セキュリティが大幅に低下しますか?私はこの種のことについて何らかの手がかりを持っている会社で唯一の人なので、誰かが私のマシンの端末を呼び出すのをあまり心配していません(とにかく、AFKのときは常にロックされています) )そして、いずれかのバックアップサーバーにsshでログインし、損傷を与えます。私はまだシステム管理の世界に非常に慣れていないので、このようなことをするのは初めてであり、セキュリティのセットアップに穴を残したくありません。

ここで問題となっているコンピューターは、Ubuntu 10.10、SMEサーバー、およびOSX 10.6を実行しています。何らかの形で何らかの違いが生じている場合)。

73
eckza

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

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

キーにパスワードを設定しないことは世界の終わりではありません。これにもかかわらず、安全を確保するための3つのアイデアを紹介します。 (biggieが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」をポップすると、キーからonly 'rsync'を呼び出すことができ、IPアドレスからonly 1.2.3.4。複数のIPは,で区切ることができます。ホスト名もサポートされています。

  3. 思い浮かぶもう1つのことは、sshd_configの「AllowUser」ディレクティブです。

    AllowUsers

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

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

92
Pricey

keychain のようなものを使用して、パスフレーズの痛みを軽減できます。これは、パスワードなしのログインを使用するよりも少し安全であり、ここで他の回答と組み合わせて使用​​できます。 PriceChildの回答 はかなり良かった。

4
Faheem Mitha