%20%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F%20%E3%81%BE%E3%81%9F%E3%80%81%E5%85%AC%E9%96%8B%E3%82%AD%E3%83%BC%E3%81%A8%E7%A7%98%E5%AF%86%E3%82%AD%E3%83%BC%E3%81%AE%E3%83%9A%E3%82%A2%E3%81%A8%E3%81%A9%E3%81%86%E9%81%95%E3%81%86%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
状況としては、以前に VPS を作成していたことです。すべてセットアップされ、秘密鍵と公開鍵の認証、ルート ログインの無効化、パスワード ログインの無効化が行われていました。すべてがセットアップされていました。
その後、このサーバーは破棄され、新しいサーバーが分離されます。
そこで、ssh -v root@new_server_ip_number
新しくインストールした Linux インスタンスにログインすると、次のような結果が表示されます。
PS C:\Users\roeslermichal> ssh -v [email protected]
OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
debug1: Reading configuration data C:\\Users\\roeslermichal/.ssh/config
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug1: Connecting to 10.32.81.216 [10.32.81.216] port 22.
debug1: Connection established.
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_rsa type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_rsa-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_dsa type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_dsa-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ecdsa type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ecdsa-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ecdsa_sk type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ed25519 type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ed25519-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ed25519_sk type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_ed25519_sk-cert type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_xmss type -1
debug1: identity file C:\\Users\\roeslermichal/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_8.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.0
debug1: compat_banner: match: OpenSSH_8.0 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 10.32.81.216:22 as 'root'
debug1: load_hostkeys: fopen C:\\Users\\roeslermichal/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts2: No such file or directory
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:5OrjMYiYdmoRTDgjsmBfOXun/4FpiClOU6L21gBDPSk
debug1: load_hostkeys: fopen C:\\Users\\roeslermichal/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts2: No such file or directory
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:5OrjMYiYdmoRTDgjsmBfOXun/4FpiClOU6L21gBDPSk.
Please contact your system administrator.
Add correct host key in C:\\Users\\roeslermichal/.ssh/known_hosts to get rid of this message.
Offending RSA key in C:\\Users\\roeslermichal/.ssh/known_hosts:15
Host key for 10.32.81.216 has changed and you have requested strict checking.
Host key verification failed.
このSHA256:5OrjMYiYdmoRTDgjsmBfOXun/4FpiClOU6L21gBDPSk.
行は何ですか? どういう意味ですか?
明らかに、このSHA256:5OrjMYiYdmoRTDgjsmBfOXun/4FpiClOU6L21gBDPSk.
番号/ID は、Windows ファイル内の Linux サーバーを識別する番号と同じではありませんknown_hosts
。
私は Windows ラップトップと PowerShell を使用してこのサーバーにログインしています。この Windows マシンにはファイルが
あり、古いサーバーが破壊され、新しいサーバーが作成されたため、一部の ID が一致しない可能性があると予想していました。キーはすでに削除し、新しくインストールした Linux サーバーのこのキーに置き換えました。 しかし、ssh クライアントは私をログインさせません。 現在のファイルは次のようになります。C:\Users\roeslermichal\.ssh\known_hosts
10.32.81.216 ssh-rsa
10.32.81.216 ssh-rsa
:\Users\roeslermichal\.ssh\known_hosts
10.32.81.216 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGh8fEmrCov7TLbiKgGasUV3fxbrKmh4Ai/RWixt41Fl
10.32.81.216 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCr43mfkweJAaHQ4kw88b0y5OShnQl91jR1eoUIcnaMRvBEi3X7McVuA+cB+MWk4Rj9EX2hnq6tyB+26weQX0GXWf95CL/yqX5p39b+j8c43CR9/3gHbU5aV+exGBbj2rEL4JgmQD58fHHEsL1r6EMcpTUgY8JqfG0F52XUJrF7KdpxlW4vtgOaHdqooBMHuMi+bR7LRq/moAHLv3svB5PPhIfSbM5CW/Eke4H4qiAwKCVUjyXxKCoKkYVDyfQur+nBMxJssUHy03385hxV0gKo8WGQKlSNvI3B1vP85ij5zCYViYUfs05lXPkpsUqosGqHDOJhPnVRM4OacMQVkj2e0MKHs/cXA1GneBiY99tPMaEL2qZ0UJoaYcnG0krc0owKE6Ufx+84VVqLG7hJHPnNRI3UrFjG/C7lAzAogz5eDiYoQvkko7mLuwRob27fIB39oH2cbH4a4DCcIDekS0WwCPeA+uwaHrmhKJluqP8r7qvDluWax3cVzDGojD7I6cU=
10.32.81.216 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCMktfR/tBD8GYWRWpo8DsoIPPxos+Rt/C1Is04S0Dglm6UbQqQQUW9m9GfDWHZn3j37ZWPGeUwTcWEojKi70yk=
10.32.81.218 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFBuju3Gav0s6Uj8XFQToa/qU7gxsxvKqtUCctWaC4FC
10.32.81.218 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6OCnBNeCfiLcYo7FAmopNBxWS5No+Locw+dxujELxhXn/zAEEnsMv+fZYP8JT8Jj+bYFX1jVAxBubqaz7swK3GCYkkL4C/dI2p7MV0E0ogznbZEZS0GHU3wA69R7s4F56oR3ZeCIas+gfe3mckB4i9UtZMy2IsGSVl974wletCXfdXxhkyRzHlgovoCnAYu9qOS/X2X2yuUNKKfL3VGQNkAih/Hjqh7Iwi36sLS8+WB/sYOk5cxJfycWewTEl1Wt5fB5bbc7Fu0Wmjn2IpMHspoR6YEw2lK/GuFIFjcVoHJ8+7JAuY9BnUdyuAbHLZ8vgrymcGw/ZP8GIhgRq1nOseAQrOzZMFtcGCS953a+L5gP9shX2ZwF/MS7h8+EYPxMNFZP6DbU++c4ZmOlb0lPkUJDhTnSbOoDZA+bfDl5jBlKtfF2V7n+V9Dwuwwbsp/qJyULIeMAdCrpjPhmKhnQASloZsEN5LLjh2gVN+YM7jACHe6ZyFD4/gpEE6N6MUG8=
10.32.81.218 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBonnCuOeQpc7CSRzbps8sLnPYMphNrfqs9h7Hz5I+Ml8QxPBUnlNw749EzqC29KFtyB8XE2SnbOK/CuUnghj5E=
しかし、この新しい Linux サーバーにキーを作成していないため、これらのホスト キーが何であるかはよくわかりません。この新しく作成した Linux サーバーに関して私が行った最初のアクションは、ルートとしてログインする方法でした。host_keys
このサーバーにはすでにいくつかあります。??? これらは、まだ作成していないため、プライベート/パブリック SSH キーではありません。では、Windows ファイルで生成され、新しい Linux サーバーを識別するこれらのキーとは何でしょうかknown_hosts
。
もう読んだこのスレッド何度か注意深く試しましたが、そこに示された回答とそれが機能する理由がよくわかりません。さらに、古いサーバー RSA ホスト キーを新しいサーバー RSA ホスト キーに置き換えたにもかかわらず、新しく作成した Linux サーバーにログインできない理由もわかりません。
PS C:\Users\roeslermichal> ssh-keyscan -t rsa 10.32.81.216
# 10.32.81.216:22 SSH-2.0-OpenSSH_8.0
10.32.81.216 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCr43mfkweJAaHQ4kw88b0y5OShnQl91jR1eoUIcnaMRvBEi3X7McVuA+cB+MWk4Rj9EX2hnq6tyB+26weQX0GXWf95CL/yqX5p39b+j8c43CR9/3gHbU5aV+exGBbj2rEL4JgmQD58fHHEsL1r6EMcpTUgY8JqfG0F52XUJrF7KdpxlW4vtgOaHdqooBMHuMi+bR7LRq/moAHLv3svB5PPhIfSbM5CW/Eke4H4qiAwKCVUjyXxKCoKkYVDyfQur+nBMxJssUHy03385hxV0gKo8WGQKlSNvI3B1vP85ij5zCYViYUfs05lXPkpsUqosGqHDOJhPnVRM4OacMQVkj2e0MKHs/cXA1GneBiY99tPMaEL2qZ0UJoaYcnG0krc0owKE6Ufx+84VVqLG7hJHPnNRI3UrFjG/C7lAzAogz5eDiYoQvkko7mLuwRob27fIB39oH2cbH4a4DCcIDekS0WwCPeA+uwaHrmhKJluqP8r7qvDluWax3cVzDGojD7I6cU=
10.32.81.216 ssh-ed25519
norキーを交換していないのに10.32.81.216 ecdsa-sha2-nistp256
、これがログインできない原因でしょうか?
答え1
SSHには相互認証があります。
まず、クライアントサーバーが実際に接続しようとしていたサーバーである~/.ssh/known_hosts
かどうかを認証します。そのために、ファイル内のホスト キー ペアの公開部分を記憶します。最初の接続時に (これはまさに「はい」と入力するように要求する部分です)、またはホストの SSHFP レコードが含まれていてゾーンが DNSSEC で保護されているかどうかを DNS から学習します。サーバーが間違ったキーを提示していることをクライアントが発見した場合、通常は MitM 攻撃が進行中であると主張して接続を拒否します。
これがSSHホストキーペアの目的です。大まかに言えば、これはPKIインフラストラクチャのSSHバージョンですが、CAベースのものではありません(または、DNSSECを使用してCAのような信頼チェーンを実装します)。これはHTTPS証明書/キーペア(「Webサーバー認証」の目的)のようなもので、同じ目的を果たします。はサーバーに属する非対称 (「公開鍵と秘密鍵」) キーのペア。
第二に、サーバクライアントが本当に本人であるかどうかを認証します。そのためには、ユーザー名/パスワードのペアや複雑なチャットベースの認証、またはサーバー上の users に保存されている非対称キー ペアを使用できます~/.ssh/authorized_keys
。この場合、キー ペアはユーザーに属します。また、従来の CA ベースの PKI には、「類似物」であるクライアント証明書 (「Web クライアント認証」の目的) があります。
さて、出力にこの行が表示されましたかSomeone could be eavesdropping on you right now (man-in-the-middle attack)!
? これは、防止するように設計された MitM 攻撃を報告する方法です。おそらく過度に慎重ですが、これがセキュリティです。
もしあなたが〜なら絶対に確実攻撃がなく、新しいフィンガープリントが正しい場合は、クライアントのknown_hostsファイルから問題のある行を削除するだけです。
コメントにある@JaromandaXのアドバイスに従うか、次のような方法ですべての問題のあるレコードを削除できます。
ssh-keygen -R 10.32.81.216
次に、あなたが確信しているかどうかの質問に文字通り「はい」と入力するか、ssh-keyscan
説明されているユーティリティを使用して同意する必要があります。他の回答ではこのファイル構築方法では、MitMに関する対話型警告は回避されますが、依然として攻撃を受けやすい同じ理由で、ssh-keyscan のマニュアル ページにも記載されています (また、リンクの下の回答へのコメントでも何度も言及されています)。