私は、Ubuntu 18.04 の VPN でサーバーのグループを操作しており、サーバーごとに異なるキー ファイルを持っています。ただし、ファイルを安全にコピーしようとすると (サーバー間で変更キーを安全に伝播するなど)、適切なキーがないため拒否されます (少なくともこれが理由だと思います。「アクセス許可が拒否されました (公開キー)」が返されます)。
各サーバーに秘密鍵を保存するのはおそらく悪い習慣でしょうか? ファイルをローカル マシンにコピーしてから別のサーバーにコピーするのは面倒ですし、それが安全かどうかもわかりません。
これはどのように適切に処理されますか? 各サーバーのユーザー (munge など) を使用して、それらの間でコピーすることはできますか? 任意の場所にコピーできない場合は、後で sudo cp を実行できる指定されたフォルダーにコピーすることはできますか? 脆弱性にならないオプションはありますか?
答え1
SSH によるキーベースの認証 (scp は SSH から派生) は、公開キー暗号化の問題です。ユーザーは個人的に秘密に保持する秘密キーを持ち、公開キーを全員に配布します。
したがって、あなたの質問に対応するには、複数の秘密鍵は必要ありませんし、1 つで十分です。次に、すべてのサーバーに公開鍵をアップロードします。秘密鍵のバックアップは、パスフレーズで暗号化して安全な場所に保管する必要があります。
第二に、アクセスしているサーバーに秘密鍵を保存することは、公開鍵暗号化の理念に反します。秘密鍵を秘密にしていないことになります。秘密鍵は安全に保管し、誰にも知られないようにする必要があります。秘密鍵はあなただけが持つべきであり、他の誰にも持たせないでください。
また、サーバー間で同じユーザー名と公開キーを使用することもお勧めします。
したがって、1 つの秘密鍵を安全に保管し、アクセスしたいすべてのサーバーに公開鍵を配布してください。これで、同じ秘密鍵を使用してすべてのサーバーにログインできるようになります。
答え2
サーバー間でデータを交換する必要がある場合は、 を検討してくださいscp -3 server1:path1 server2:path2
。これは、ホストを中間者として(サーバー間の直接接続なしで)データを転送します。
各サーバー ブロックのオプション セット.ssh/config
を使用してファイルを構成することもできます。IdentityFile
Host server1
IdentityFile ~/.ssh/file1
Host server2
IdentityFile ~/.ssh/file2