アクセス権のない別のマシンに SSH 公開キーを設定するにはどうすればいいですか?

アクセス権のない別のマシンに SSH 公開キーを設定するにはどうすればいいですか?

これは愚かな質問かもしれませんが、とにかく尋ねなければなりません。
クライアント マシン A の ssh 公開キーはすでに設定しました。公開キーをリモート サーバーにコピーし、すべて正常に動作し、マシン A からログインできます。

今、私は別のマシンからもそのサーバーにアクセスしたいのですが、ベストプラクティスに従って、マシン A のキーを再度使用するのではなく、クライアント マシン B 用に別のキーを生成したいと考えていました。もちろん、キー ペアを生成することはできますが、クライアント マシン B はサーバーにアクセスできず、A だけがアクセスできるため、その新しい公開キーをサーバーにコピーすることはできません。

現時点で私が見つけた唯一の解決策は、USB スティック上の新しい公開キーをクライアント マシン A に持って行き、そこからサーバーにコピーすることのようですが、これは少し面倒で、n 台のマシンが互いにかなり離れた場所にある場合にはあまり実用的ではないようです。

それを実行するための正しいアプローチは何ですか?

クライアントとサーバーは両方とも Linux を実行しています。

答え1

正しいアプローチがあるかどうかはわかりませんが、何らかの方法でサーバーにアクセスする必要があり、マシン A は現時点では唯一のアクセス ポイントであるため、他の n 台のマシンと同様に、少なくとも 1 回は物理的にサーバーにアクセスする必要があります。それでは、すべての公開キーを USB スティックに収集し、それをマシン A に移動して、サーバーのユーザーのホーム .ssh 構成ディレクトリに配布するのはどうでしょうか。

USB スティックがない場合でも、いくつかのオプションがあります。

変数 #1。マシン A からサーバーへのパスワード ログインを一時的に有効にします。通常の方法で、キー ペアを生成し、マシン B、C、D などからサーバーに公開キーをコピーします。サーバーへのパスワード ログインを無効にします。

変数 #2。一時的なパスワード ログインでもセキュリティ上の欠陥と見なされる場合は、ホーム ディレクトリ以外にはアクセスできない一時的なユーザーをサーバー上に作成し、このユーザーに対してのみパスワード ログインを有効にします。キー ペアを生成し、マシン B、C、D などからこのユーザーのホーム ディレクトリに公開鍵をコピーします。公開鍵は機密情報ではなく、潜在的な盗用は安全な状況と見なされますが、なりすましは安全ではないため、何らかの方法で暗号化または署名することを検討してください (gpg)。マシン A からサーバーにログインし、サーバーのユーザーに公開鍵を配布し、使用した一時的なユーザーを無効にします。

Var #3。SSH サーバーの再起動がオプションでない場合は、マシン A を一時的な SSH サーバーにして、SSH 公開キーを実際のサーバーにコピーするための中間ステーションとして使用できます。

Var #4。別の通信チャネル(別のリモート サーバー、パブリック サーバー、電子メールなど)を使用します。もう一度言いますが、公開鍵は機密情報ではありませんが、なりすましを防ぐために必ず署名してください。

答え2

まあ、公開鍵をリモートサーバーに転送する必要がありますどうにか

ただし、公開鍵は機密情報ではないため (名前の通り)、USB スティックにコピーしたり、どこかにアップロードしたり、メモに残したりすることができます。

サーバーに追加するキーが、実際にクライアントからアップロードしたキーであることを確認してください。

答え3

私は通常、コピー アンド ペーストで SSH キーを移動します。ただし、電子メール、http、netcat など経由で送信することもできます。これらは単なるテキストです。

マシンCの公開鍵をマシンBに取得できれば、BからAにsshしてCの鍵をインストールできる。

関連情報