公開鍵と秘密鍵は、クライアントとサーバーにどのように保存され、関連していますか?

公開鍵と秘密鍵は、クライアントとサーバーにどのように保存され、関連していますか?

クライアントとサーバーで公開鍵と秘密鍵、構成ファイルを一致させようとしましたが、不一致を解決できませんでした。 SSH経由でサーバーに正常に接続できますしかし、不一致の状況。これは少し心配です。

どこに何が保存されているか正確にお見せしましょう。

クライアント:Macサーバー:Ubuntu(AWSでホスト)

私のローカルMacの/Users/sm/.sshディレクトリにあるファイル

ls -la 
Sanjays-iMac:.ssh sm$ ls -la
total 24
drwx------   5 sm  staff   160 26 Nov 21:29 .
drwxr-xr-x+ 59 sm  staff  1888 26 Nov 21:29 ..
-rw-------   1 sm  staff  1696 26 Nov 20:49 id_rsa
-rw-r--r--@  1 sm  staff   451 26 Nov 20:50 id_rsa.pub
-rw-r--r--   1 sm  staff  1151 26 Nov 21:08 known_hosts

私のUbuntuサーバー上のファイル:

ubuntu@ip-172-31-30-19:~/.ssh$ ls -la
total 12
drwx------ 2 ubuntu ubuntu 4096 Nov 26 14:37 .
drwxr-xr-x 8 ubuntu ubuntu 4096 Oct 30 18:02 ..
-rw------- 1 ubuntu ubuntu  391 May 25  2018 authorized_keys

Ubuntuの現在の作業ディレクトリ:

ubuntu@ip-172-31-30-19:~/.ssh$ pwd
/home/ubuntu/.ssh

authorized_keysサーバーのファイルコンテンツ:

ubuntu@ip-172-31-30-19:~/.ssh$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA....0g1bMv+p11K8MDH sanjaydev

(個人情報保護のため内容が切り捨てられました。)

同様に、ローカルサーバーにKnown_hostsファイルがあります。

Sanjays-iMac:.ssh sm$ cat known_hosts
54.251.104.13 ecdsa-sha2-nistp256 AAAAE2VjZHNhLX..Xsb/RBY=
52.76.85.25 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTI....hAkfLOc5g=
ec2-13-127-241-121.ap-south-1.compute.amazonaws.com,13.127.241.121 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXN....fu5Co4vYB0=
ec2-13-232-81-251.ap-south-1.compute.amazonaws.com,13.232.81.251 ecdsa-sha2-nistp256 AAAAE2VjZHNhL....nhNcRyfu5Co4vYB0=
35.154.168.85 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNo....NcRyfu5Co4vYB0=
13.126.30.42 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTIt....NcRyfu5Co4vYB0=

(個人情報保護のため内容が切り捨てられました。)

今私の質問は次のとおりです。

何が何であるべきですか?

クライアントのauthorised_keys公開鍵はサーバー上のファイルの項目の 1 つと一致しなければならず、サーバーの公開鍵はクライアント上のファイルの項目の 1 つと一致しなければならないとknown_hosts思います。

残念ながら、手動で一致しようとすると、正確には一致しません(最初の数文字だけが一致します)。-i <pemfile>コマンドラインでこれを指定しなくてもssh接続が継続されることは注目に値します。

ベストアンサー1

キーには2つのタイプがあります。仕える人または所有者ユーザーにサーバーを識別するキーユーザーログインを許可するキーです。

サーバーの秘密ホストキーはに保存されます/etc/ssh/。その公開鍵は、プロンプトの後に自動的にknown_hostsクライアントに追加されます~/.ssh。これらのキーの目的は、中間者(MITM)攻撃を検出することです。ssh ...通常どおり入力中にホストキーが突然変更され、サーバーに何も変更されていない場合は、疑わしいはずです。

通常、ホストキーは気にする必要はなく、自動的に管理されます。

ユーザーキーを使用すると、パスワードを入力しなくても認証できます。ユーザーキーはクライアントによって管理されます。id_rsa.pub公開鍵と秘密鍵で構成される鍵ペアを作成しましたid_rsa。公開鍵は~/.ssh使用されず、必要に応じて使用できるように保存されます。~/.ssh/authorized_keysサーバー上のそのユーザーの公開鍵に公開鍵を手動で追加する必要があります。 1行に1つのキーが必要です。authorized_keysファイルが空の場合は、コピー(パスワードscpとパスワードなど)でid_rsa.pub十分です。

したがって、あなたの場合

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA....0g1bMv+p11K8MDH sanjaydev

Ubuntuサーバー上のファイルのキーは、Macのキーauthorized_keysと同じでなければなりません。id_rsa.pub

同じですが、まだログインできない場合は、別の問題があります。

おすすめ記事