web-dev-qa-db-ja.com

SSH公開鍵が改ざんされた場合はどうすればよいですか?

秘密鍵が危険にさらされていることは大きなリスクであることを理解しています。ただし、公開鍵についてはどうでしょうか。改ざんされた場合はどうなりますか?

LinuxサーバーでSSHに使用する秘密鍵に関連付けられた私の公開鍵に誰かがアクセスして変更したとしても、サーバーへのアクセスが妨げられることはありません。したがって、私の側の可用性に影響しますか?

31
Kev

秘密鍵があれば、いつでも公開鍵を再生成できます。

あなたが尋ねる:

LinuxサーバーでSSHに使用する秘密鍵に関連付けられた私の公開鍵に誰かがアクセスして変更したとしても、サーバーへのアクセスが妨げられることはありません。そのため、私の側の可用性に影響しますか?

それで、コンピューターをオンにしたまま、スリープ状態にしないで、何かを実行するために逃げて、誰かがコンピューターに行って公開キーに数文字を追加するだけのような問題が懸念されている状況です破損していますか?それとも削除しますか?

秘密鍵さえあれば心配ありません。次のコマンドを実行するだけです:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

そして、公開鍵が再生成されます。公開鍵行の最後にあるコメントは、どの鍵が何であるか(通常は電子メールアドレスを介して)をより簡単に識別できるため、このメソッドではこのid_rsa.pubに追加されないことに注意してください。したがって、テキストエディタで開き、手動で追加することをお勧めします。

他の懸念事項について。

誰かがあなたのアクセスを拒否する方法でリモートマシンの公開鍵をハッキングすることについて心配しているなら?正直なところ、そのような場合には、かなり大きな問題に対処する必要があります。

通常、誰かがroot、またはパスワードなしのSudo権限を持つアカウント、またはそのマシン上の自分のアカウントにアクセスできるアカウントにアクセスできる必要があります。そして、それは前例のないことではありませんが、せいぜいまれな出来事です。

44
JakeGould

「私の」Linuxボックスに誰かが侵入し、Linuxボックスへのアクセスを許可する公開鍵を含む.ssh/authorized_keysを変更したかどうかを尋ねているようですが、「それを変更しても、私がサーバー;そのため(e)、私の側の可用性に影響しますか?」

はい、authorized_keysファイルで公開鍵が変更された場合、秘密鍵と一致しませんが、これは、誰かが家に入ってドアの鍵を変更したため、家の鍵が機能しなくなったというようなものです。

彼らはどのようにして最初に変更を加えましたか? rootとログインの所有者のみが自身のauthorized_keysファイルを変更できるため、これらが疑わしいものになります。

17
MarkT

公開鍵の要点は広く知られるべきです。 PKI(公開鍵インフラストラクチャ)によって検証できます。 PCのローカルで秘密鍵を使用してメッセージ(およびその他のもの)に署名することができ、他の人はメッセージが自分からのものであることを確認できます。

同様に、公開鍵はリモートサーバーのSSH構成ファイルに入れることができます。これらのサーバーにSSH接続すると、適切な秘密鍵を持っている人だけが正しく答えることができるという課題があります。

あなたの元の質問は尋ねました:

「誰かが秘密鍵に関連付けられた私の公開鍵にアクセスし、LinuxサーバーでSSHを使用して変更した場合」...

その後、同じ公開鍵ではなくなります。別の管理者が適切な公開鍵を設定できるように、公開鍵をすぐに再生成できます。

二次的な心配があります:他に誰が私のマシンにアクセスできるか、彼らは何ができますか?ホースの回答は複雑で状況に応じて異なります。

Web上のSSHとPKIには多くの優れたリソースがあります...良いスタートです: SSH Essentials:Working with SSH Servers、Clients、and Keys

14

はい。サーバー上の公開鍵を変更すると、サーバーへのアクセスが拒否されます。

しかし、それはさらに悪いことです。彼らがそれを他の誰かの公開鍵に変更した場合、それは他の人がサーバー上であなたになりすます可能性があることを意味します。これは、従来の認証を使用しているときに誰かがパスワードを変更した結果とほとんど同じです。

しかし、誰かがあなたの公開鍵を変更する能力を持っている場合、彼らは追加の公開鍵を追加する能力も持っているかもしれません。そのため、アクセスを拒否することなく、なりすましの権限を自分に与えることができます。また、誰かがあなたがしていないサーバーで何かをしたと非難するまで、何かがおかしいことに気付くことはありません。

5
Barmar

この質問は、「誰かが私のプログラムのソースを変更したらどうなるのか?」オープンソースソフトウェアについても、答えは同じです。変更できるのはそのコピー、または(正当にまたは誤って)アクセスできるコピーだけです。一般に、これはユーザーに影響を与えることはなく、影響があっても、公開鍵とは関係なく、影響を与えるシステムに誤って変更を加えることができます。

バックアップから復元する必要があります。これがNSSステートメントのように聞こえたら申し訳ありませんが、そうです。

そして、はい、秘密鍵から再生成できますが、バックアップや冗長コピーがないのはなぜですか?

これがクラウドインスタンスである場合、なぜ別の方法がないのでしょうか。 (それが専門家ではない、Webminであるかどうかなどは気にしません)。 sshdを完全に失ったらどうしますか?

..少なくとも2人の管理者。ロックアウトすることはできません。

0
mckenzm