authorized_keys

authorized_keys

私の意見では、実行中のコンピュータがssh serverアクセス権を持つ私のユーザー名へのマッピングを維持しているようです(私はリモートユーザーです)。ssh public keyしかし、私と他の人は、特定のローカルユーザーに代わってリモートシステムにログインすることができます。つまり、john.doeローカルユーザーを持つリモートシステムがあることを意味します。これは、あるユーザーを代理人のアクセス権を持つ複数のjohn.doeユーザーにマッピングすることを意味しますか?ssh public keysjohn.doe

答え1

最も簡単な答えは「いいえ」です。

earth例のシナリオ:あなた(Bob)は()でリモートホストに接続しようとしていますalice

aliceSSHは、どこか(Unix、Windows、タブレットなど)からホスト()のユーザー()に接続することですearth

(パスワードなしで)接続するときはbob秘密鍵を使用します(Unixでは通常はにありますが、~/.sshどこにでも配置できます)。

リモートホストに関する事実は2つだけです。

  • aliceあなたは次に接続したいです
  • あなたは秘密鍵を所有していると主張します(あなたが秘密鍵から指紋を提供しました)。

earth鍵の公開部分を所有するリモートホスト()は、秘密部分を持つ誰でも応答できる認証確認を発行します。チャレンジが完了したら、接続するだけです。

aliceこの場合、あなたは承認された鍵の1つの秘密部分を所有していることを証明します。ただし、リモートホスト(earth)は、あなたがBob、Igor、または他の人であるかどうかを知る方法はありません。

ユーザーのシナリオが完全に異なるWindowsまたはAndroidデバイスから接続できることに注意してください。

authorized_keys

このファイルには、接続できる公開鍵がリストされています(チャレンジ後)。

ファイルは次の場所にあります。

  • ${HOME}/.ssh/authorized_keys(基本)
  • AuthorizedKeysFileファイルで指定されたすべての場所 sshd_config。望むよりman sshd_config

答え2

あなたの質問を完全には理解していませんが、johndoeSSHキーをユーザーにマッピングする方法(パスワードなしでリモートサーバーにログインする権限を付与する方法)は、公開鍵の一部がファイルに含まれていることです。

~johndoe/.ssh/authorized_keys  

リモートサーバーから。

ディレクトリに秘密鍵部分~/.ssh/(fileなど)がある場合は、~/.ssh/id_rsa次のコマンドを使用してリモートサーバーにパスワードなしでログインできます。

ssh johndoe@remoteserver

ローカルコンピュータのユーザー名に関係なく。

答え3

はい、Authorized_keys ファイルを使用して、秘密鍵を 1 人以上のユーザーに関連付けることができます。

Linuxサーバーが鍵ペアを認識して受け入れるには、公開鍵をサーバーにアップロードする必要があります。具体的には、ログインしたいユーザーのホームディレクトリに公開鍵をアップロードする必要があります。鍵ペアを使用してサーバー上の複数のユーザーにログインするには、各ユーザーに公開鍵を追加する必要があります。

サーバーユーザーの1人に対してSSH鍵認証を設定するには、そのユーザーのAuthorized_keysファイル内の新しい行に公開鍵を追加します。ファイルは、ユーザーのホームフォルダの下の.ssh /というディレクトリに保存されます。ユーザーのauthorized_keysファイルには複数の公開鍵を保存でき、各公開鍵は独自の行に表示されます。ファイルに複数の公開鍵が含まれている場合、リストされている各鍵の所有者はそのユーザーとしてログインできます。

源泉:https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/

関連情報