SSHキーは各システムに保存する必要があるため、パスワードを使用してSSHにログインする方が便利ですか? [閉じる]

SSHキーは各システムに保存する必要があるため、パスワードを使用してSSHにログインする方が便利ですか? [閉じる]

SSHの場合、ユーザー名とパスワードを使用すると入力が可能なので、より便利なようです。一方、秘密鍵はSSHを使用する各コンピュータに保存する必要があります。

したがって、どのコンピュータでもサーバーにSSH接続するには、ユーザー名とパスワードを使用する必要があります。

この前提は正しいですか?

答え1

いいえ。これは、SSHが有効なキーを見つけることができない場合は、とにかくパスワードに置き換えられるためです。したがって、ホスティング用のキーを設定しても失うことはありません。

答え2

秘密鍵は、SSHで使用されるすべてのコンピュータに保存する必要があります。

これはSSHを使用する正しい方法ではありません。コンピュータ間で秘密鍵をコピーすることは避けるべき弱点です。正しい方法は、各コンピュータで鍵ペアを生成し、すべての公開鍵を認証済み鍵ファイルに追加することです。すでにアクセス権を持つ別のコンピュータに新しい公開鍵をコピーし、SSHを使用して認証鍵ファイルを新しい公開鍵で更新できます。

したがって、どのコンピュータでもサーバーにSSH接続するには、ユーザー名とパスワードを使用する必要があります。

これは実際には本当ですが、あなたの前提は次のようになるため、セキュリティが脆弱になります。考える「すべてのコンピュータ」(ルートキット、キーロガー、および/または偽のSSHがインストールされている可能性があります)からアカウントにアクセスします。

答え3

ここに何か欠けていることを確認したかったです。

考慮すべきことは、通常、システム管理者として独自のワークステーションを持ち、そのワークステーション内に自分のID(秘密鍵など)を含むユーザープロファイルを持つことです。そして、複数のワークステーションを使用している場合、理想的にはユーザー環境ファイルがコピーされます。また、何らかの理由でワークステーションの前に存在できない場合は、資格情報を使用してワークステーションにSSHとして接続し、そこから接続するサーバーにSSHとして接続します。

SSHを使用するには、ユーザー名とパスワードを使用しているようです。ユーザー名とパスワードはどのコンピュータでも入力できますが、秘密鍵はSSHで使用される各コンピュータに保存する必要があるためです。

すべてのサーバーのパスワードを覚えている場合は、パスワードが間違っています。パスワードを記憶するためにパスワードが保存されている文書にアクセスする必要がある場合は、秘密鍵を検索することもできます。

答え4

秘密鍵は、SSHで使用されるすべてのコンピュータに保存する必要があります。

2番目の段落(具体的には上記の引用で私が集中している部分)は正しいです。複数のコンピュータからログインする場合は、複数のコンピュータから秘密鍵にアクセスする必要があります。これはいくつかを意味します。まず、ログインするすべてのコンピュータは、秘密鍵でひどいことをしないように信頼できる必要があります。悪意のあるマシンは信頼できません。第二に、秘密鍵をこれらのコンピュータに転送する方法を見つける必要があります。これは非常に不便かもしれません。

複数のコンピュータでログインできるようにするには、この問題を解決する方法がいくつかあります。 1つのアプローチは、安全性の低いシステムから安全なシステムにログインし、さまざまな他のシステムで使用できるようにセキュリティシステムにキーを保存することです。攻撃者が中間コンピュータにパスワードを送信しようとする可能性があるため、セキュリティチェーンにはまだ弱いリンクが残っています。一度取得すると、攻撃者は潜在的に他のシステムへのアクセスを提供するキーへのアクセス権を取得する可能性があります。しかし、良いニュースは、アクセスするすべてのコンピュータに秘密鍵を入れる必要がないため便利です。

別の方法は、使い捨て資格情報を使用することです。 (通常は使い捨てパスワードとも呼ばれます)この方法では、信頼できるデバイスを使用してパスワードを生成できます。スマートフォンを使ってみた人もいます。その後、パスワードを正常に使用した後、キーが破損(盗難/コピー)されても、まったく気にしません。それ以来、パスワードはもう役に立たないからです。

通常、同じシステムにログインしている場合は、ワンタイムパスワードを使用する方がやや便利です。一部のソフトウェアは、手動操作があまり必要でない詳細(たとえば、シリアル番号)を覚えている可能性があるためです。 SSHアクティビティの開始時に使い捨てパスワードを使用してから信頼できるシステムにログインすることで、これらの方法を組み合わせることができます。次に、そのシステムのキーファイルを参照して別のシステムにログインします。

したがって、どのコンピュータでもサーバーにSSH接続するには、ユーザー名とパスワードを使用する必要があります。

したがって、3番目の段落は私が同意しない前提の一部です。なぜなら、私はあなたの質問を標準のパスワードを使っていつもやってきた方法に固執しなければならないという意味に解釈したからです。代わりに、「使い捨てパスワード」方法の一部であるパスワードフレーズを使用してください。これにより、より洗練されたセキュリティ方法(キーファイルと同様にセキュリティが向上)を使用できますが、キーファイルを使用するために信頼できないコンピュータは必要ありません。

正しい方向を導くために、OpenSSHはskeyinitと呼ばれるプログラムを使用してskeyメソッドを介して使い捨てパスワードをサポートします。その後、モバイルデバイスでパスワードを生成するために、Android用OTPdroidもそれをサポートします。他の可能な解決策があるかもしれませんが、これは一緒にうまく機能することが知られているいくつかのリソースについてのみ説明します。

注:説明する状況(マルチシステム)の場合は、ターミナルマルチプレクサ(tmuxまたはscreen)に慣れることをお勧めします。これにより、一部の操作(仲介システムから別のシステムにログイン)を実行してからセッションを切断できます。その後、別のコンピュータで初期ログインを実行した後に別々のセッションを再開することができ、いくつかの日常的な作業(他のコンピュータにログインするなど)を再度完了する必要がない場合があります。

関連情報