Linuxでのsshキーの設定について読み、いくつか質問があります。私が間違っていたら訂正してください…
ホストtr-lgtoがsshを使用してホストtr-mdmに接続したいとします。それが本当のtr-mdmであることを確認したい場合は、tr-mdmで鍵のペアを生成し、公開鍵をtr-lgtoのknown_hosts
に追加します。 tr-mdmが本当のtr-lgtoであることを確認したい場合、tr-lgtoは鍵ペアを生成し、公開鍵をtr-mdmのauthorized_keys
に追加する必要があります。
質問1:ファイルknown_hostsにuserフィールドはなく、IPアドレスとホスト名のみです。 tr-mdmには多数のユーザーがいて、それぞれに独自の.ssh
フォルダーがあります。各known_hosts
ファイルに公開鍵を追加する必要がありますか?
質問2:ssh-keyscan -t rsa tr-mdm
がtr-mdmの公開鍵を返すことがわかりました。このキーが属しているユーザーを知るにはどうすればよいですか?さらに、/root/.ssh/
の公開鍵は、そのコマンドが返すものとは異なります。どうすればいいの?
サーバーマシンの認証をクライアントマシンに、ユーザーの認証をサーバーマシンに混在させます。
SSH接続が確立されているときに最初に起こることの1つは、サーバーがその公開鍵をクライアントに送信し、( 公開鍵暗号 のおかげで)クライアントが関連する秘密鍵。これにより、サーバーが認証されます。プロトコルのこの部分が成功した場合、クライアントはサーバーが本人であると偽って知っています。
クライアントは、サーバーが既知のサーバーであって、正しいサーバーとして偽装しようとしている不正なサーバーではないことを確認する場合があります。 SSHは、サーバーの正当性を検証するための単純なメカニズムのみを提供します。クライアントマシンの~/.ssh/known_hosts
ファイルに、すでに接続しているサーバーを記憶します(システム全体のファイル/etc/ssh/known_hosts
もあります)。初めてサーバーに接続するときは、他の方法で、サーバーから提示された公開鍵が実際に接続したいサーバーの公開鍵であることを確認する必要があります。接続しようとしているサーバーの公開鍵がある場合は、クライアントの~/.ssh/known_hosts
に手動で追加できます。
機密データをサーバーに送信する前に、サーバーの認証を行う必要があります。特に、ユーザー認証にパスワードが含まれる場合、そのパスワードを認証されていないサーバーに送信しないでください。
サーバーは、リモートユーザーがそのアカウントにアクセスする権限を持っていることを証明できる場合にのみ、リモートユーザーのログインを許可します。サーバーの構成とユーザーの選択に応じて、ユーザーはいくつかの形式の資格情報の1つを提示することがあります(以下のリストは完全ではありません)。
~/.ssh/authorized_keys
)にあることを証明した場合に受け入れられます。友達が答えをくれました。デフォルトでは、keyはユーザーではなくマシンを識別します。したがって、キーは/ etc/ssh /に保存されます。 /root/.sshに保存されているものとは異なるキーを取得したのはそのためです