
次のシナリオを理解しようとしています。
サーバーもあり、A
サーバーもありますB
サーバーはSSHキーメカニズムを介してA
サーバーにファイルをプッシュします。B
サーバーがB
サーバーにプッシュされたファイルを受信すると、サーバーにプッシュされA
たファイルのどのユーザーIDが表示されますかB
?
B
サーバーは特定のuserIdを使用してA
サーバーにファイルをプッシュすることを許可できますか?では、どうすれば達成できますか?
Linuxではこの論理を知りません。
共有してください。
更新:B
サーバーのuserID名はで、サーバーでも同じuserIDを使用したいですserverB
。可能ですか?A
serverB
答え1
サーバーBは、サーバーAが特定のuserIdを使用してファイルをプッシュできるようにします。これは可能ですか?では、どうすれば達成できますか?
SSHキー認証を設定するたびにこれを実行します。特定のユーザーについてターゲットサーバーで。秘密鍵を安全に保管することは、ソースからのユーザーの責任です。または、authorized_keys
ユーザーが鍵を紛失した場合は、ターゲットサーバーの管理者に連絡して、そのファイルから公開鍵を削除する必要があります。
接続の両端にあるUID番号またはユーザー名は一致する必要はありません。理論的には、SSHクライアントは組み込みシステムにあり、ユーザーアカウントの概念がまったくない可能性があります。
複数の接続に同じキーペアを使用したり、各接続に別々のキーペアを使用したり、それらの間の組み合わせを使用したりできます。技術的に同じ公開鍵をサーバーBのすべてのユーザーアカウントに追加すると、その秘密鍵を持つユーザーはサーバーBのすべてのユーザーとしてログインできますが、これは一般的に非常に愚かです。
(サーバーBに残念なことが起こるたびに、他のすべてのユーザーは「私ではなく、自分のアカウントでログインしたマスターキーの所有者だったと思います」と言うことができます。
デフォルトでは、SSH鍵ペアの秘密鍵を持つ人は誰でもサーバーのアカウントにログインできます。これは同じ鍵ペアの公開部分をユーザーアカウントファイルauthorized_keys
に追加します。接続がどこから来たのか、キー保有者が接続の反対側にあると主張するかにかかわらず。
authorized_keys
ファイルに追加の制約を設定できます。特定のIPアドレスまたはホスト名から接続が来たとき、またはIPまたはホスト名のワイルドカードパターンに基づいている場合にのみ、キー認証が機能するように制限できます。詳細については、AUTHORIZED_KEYS FILE FORMAT
システムの段落を参照してくださいman sshd
。バージョンによって使用可能な正確なオプションが異なる場合がありますsshd
。
通常、クライアントユーザー名に制限することは意味がありません。サーバーは通常、SSH クライアントに要求するよりも、そのユーザー名を見つけるより良い方法がなく、クライアントがハッキングされ、それに対してうそをつく可能性があるためです。ユーザーが自分の秘密鍵を間違った手に入れることを許可しない限り、成功した鍵ベースの認証は、ユーザーがターゲットサーバーでその特定のアカウントを使用する権限を持っているという強力な証拠です。
したがって、あなたの場合、サーバーがserverA
サーバーにプッシュファイルを使用し、コマンドがユーザーとして実行されると、コマンドはデフォルトのログインを介してサーバーにファイルを転送しようとします。serverB
scp /some/files B:/some/directory
userA
scp
userA
serverB
デフォルトは、コマンドにターゲット・ユーザー名を指定することで変更できます。scp /some/files userB@serverB:/some/directory
ログインするとファイルが転送されます。userB
serverB
ターゲットユーザー名は、SSHクライアント構成ファイルで指定することもできます。userA
のファイルにその設定がある場合は、コマンドを実行したときなど、ログインしてファイルも送信されます。~/.ssh/config
serverA
scp /some/files serverB:/some/directory
serverB
userB
userA
serverA
Host serverB
User userB