1

dnssec ゾーンがあり、sshfp を使用して ssh キーを公開したいと考えています。

したがって、キーを保持するホストで、次を実行します。

 ssh-keygen -r localhost

結果が得られます:

 localhost IN SSHFP 1 1 223458a4e3f4cae23a2365a127a9fc5dbfc4df0b
 localhost IN SSHFP 1 2 cf04e11c129c465e90afc3fc68b0a9c6f256e7c3dc2f0ef0d61557f5848cc2bb

次に、それを自分の dnssec ゾーン (明らかに正しいホスト名) に配置し、ゾーンを辞任して、dig クエリで確認しました。すべて順調。

そして、sshクエリは物事が間違っていると言います:

  stephane@luciole:~$ ssh -v -o VerifyHostKeyDNS=yes host
  OpenSSH_6.6.1, OpenSSL 1.0.1i 6 Aug 2014
  debug1: Reading configuration data /home/stephane/.ssh/config
  debug1: /home/stephane/.ssh/config line 1: Applying options for host
  debug1: Reading configuration data /etc/ssh/ssh_config
  debug1: /etc/ssh/ssh_config line 19: Applying options for *
  debug1: Connecting to host [2001:16d8:d0:205::5]
  debug1: Connection established.
  debug1: identity file /home/stephane/.ssh/id_rsa type 1
  debug1: identity file /home/stephane/.ssh/id_rsa-cert type -1
  debug1: identity file /home/stephane/.ssh/id_dsa type -1
  debug1: identity file /home/stephane/.ssh/id_dsa-cert type -1
  debug1: identity file /home/stephane/.ssh/id_ecdsa type -1
  debug1: identity file /home/stephane/.ssh/id_ecdsa-cert type -1
  debug1: identity file /home/stephane/.ssh/id_ed25519 type -1
  debug1: identity file /home/stephane/.ssh/id_ed25519-cert type -1
  debug1: Enabling compatibility mode for protocol 2.0
  debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Debian-7
  debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6
  debug1: match: OpenSSH_6.6 pat OpenSSH_6.5*,OpenSSH_6.6* compat 0x14000000
  debug1: SSH2_MSG_KEXINIT sent
  debug1: SSH2_MSG_KEXINIT received
  debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
  debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
  debug1: sending SSH2_MSG_KEX_ECDH_INIT
  debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
  debug1: Server host key: ECDSA 4d:57:c1:77:2d:cf:6b:46:d4:83:24:3c:b7:d4:0d:67
  debug1: found 4 insecure fingerprints in DNS
  debug1: mismatching host key fingerprint found in DNS
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @    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 ECDSA key sent by the remote host is
  4d:57:c1:77:2d:cf:6b:46:d4:83:24:3c:b7:d4:0d:67.
  Please contact your system administrator.
  Update the SSHFP RR in DNS with the new host key to get rid of this message.
  debug1: checking without port identifier
  The authenticity of host '[host] ([2001:16d8:d0:205::5])' can't be established.
  ECDSA key fingerprint is 4d:57:c1:77:2d:cf:6b:46:d4:83:24:3c:b7:d4:0d:67.
  No matching host key fingerprint found in DNS.
  Are you sure you want to continue connecting (yes/no)?

それで、なぜ私は持っているのですか?

私は現在、サーバーに直接アクセスできる安全な環境のローカルネットワークで作業しています。MITMはありえません。

4

1 に答える 1

2

dns sshfp を作成するとき、ssh キーが 3 つ (キーごとに 2 つの sshfp) あるのに、sshfp RR が 4 つしかないことに気づきませんでした。

そこで、ssh ディレクトリにある sshfp を 1 つずつ返して生成し、dns にあったものと比較しました。私はecdsaキーを持っていないようでした。

したがって、このキーを使用して sshfp を具体的に生成します。ゾーンに登録し、署名しました。その後、VerifyHostKeyDNS と verbose を使用して ssh 接続を試みたところ、ssh は正しい ssh フィンガープリントを確立したとうまく言いました。

cd /etc/ssh
ls
ssh_config
ssh_dsa_key
ssh_dsa_key.pub
...

ssh-keygen -r host -f ssh_host_ecdsa_key
于 2014-09-25T20:54:24.027 に答える