আমি কীভাবে এসএসএইচএফপি রেকর্ডার তৈরি করতে পারি?


39

আমার হোস্টের জন্য আমাকে ডিএনএসে এসএসএইচএফপি রেকর্ডস সেটআপ করতে হবে। আমি কিছু অনুসন্ধান করেছি কিন্তু এর চেয়ে ভাল উদাহরণ আমি পাই নি।

  • এসএসএইচএফপি রেকর্ডগুলি কী কী?
  • এসএসএইচএফপি রেকর্ডগুলি দেখতে কেমন?
  • আমি কীভাবে এসএসএইচএফপি রেকর্ড তৈরি করব?

উত্তর:


49

এসএসএইচএফপি রেকর্ডগুলি কী কী?

এসএসএইচএফপি আরআর রেকর্ডগুলি হ'ল ডিএনএস রেকর্ড যা এসএসএইচের জন্য ব্যবহৃত পাবলিক কীগুলির জন্য ফিঙ্গারপ্রিন্ট ধারণ করে। এগুলি বেশিরভাগ ডিএনএসএসইসি সক্ষম ডোমেনগুলির সাথে ব্যবহৃত হয়। যখন কোনও এসএসএইচ ক্লায়েন্ট কোনও সার্ভারের সাথে সংযোগ করে তখন এটি সংশ্লিষ্ট এসএসএইচএফপি রেকর্ডটি পরীক্ষা করে। যদি রেকর্ডগুলি ফিঙ্গারপ্রিন্ট সার্ভারের সাথে মেলে তবে সার্ভারটি বৈধ এবং এটি সংযোগ করা নিরাপদ।

এসএসএইচএফপি রেকর্ডগুলি দেখতে কেমন?

এসএসএইচএফপি রেকর্ডে তিনটি জিনিস রয়েছে:

  1. অ্যালগরিদম
  2. ফিঙ্গারপ্রিন্ট প্রকার
  3. আঙুলের ছাপ (হেক্সে)

অ্যালগরিদম

2015 হিসাবে এসএসএইচএফপিতে সংজ্ঞায়িত চারটি আলাদা অ্যালগরিদম রয়েছে । প্রতিটি অ্যালগরিদম একটি পূর্ণসংখ্যা দ্বারা প্রতিনিধিত্ব করা হয়। অ্যালগরিদমগুলি হ'ল:

  • 1 - আরএসএ
  • 2 - ডিএসএ
  • 3 - ইসিডিএসএ
  • 4 - এড 25519

ফিঙ্গারপ্রিন্ট প্রকার

দুটি ফিঙ্গারপ্রিন্ট প্রকারগুলি 2012 হিসাবে এসএসএইচএফপিতে সংজ্ঞায়িত করা হয়েছে । প্রতিটি ফিঙ্গারপ্রিন্ট প্রকার পূর্ণসংখ্যা দ্বারা উপস্থাপিত হয়। এইগুলো:

  • 1 - SHA-1
  • 2 - SHA-256

আমি কীভাবে এসএসএইচএফপি রেকর্ডার তৈরি করতে পারি?

আপনি প্যারামিটারটি ssh-keygenব্যবহার করে রেকর্ড তৈরি করতে ব্যবহার করতে পারেন -r, তারপরে হোস্টনাম (যা আঙুলের ছাপগুলিকে প্রভাবিত করে না তাই আপনি তার পরিবর্তে যা পছন্দ করতে পারেন তা নির্দিষ্ট করতে পারেন)

উদাহরণ

ব্যবহার ssh-keygenএবং CentOS:

[root@localhost ~]# ssh-keygen -r my.domain.com
my.domain.com IN SSHFP 1 1 450c7d19d5da9a3a5b7c19992d1fbde15d8dad34
my.domain.com IN SSHFP 2 1 72d30d211ce8c464de2811e534de23b9be9b4dc4

বিঃদ্রঃ

কখনও কখনও ssh-keygenপাবলিক শংসাপত্রের অবস্থান জিজ্ঞাসা করবে। যদি এটি জিজ্ঞাসা করে, আপনি ssh-keygenএকাধিকবার চালাতে হবে এবং প্রতিবার আপনি প্রয়োজনীয় সমস্ত এসএসএইচএফপি রেকর্ড তৈরি করেছেন তা নিশ্চিত করার জন্য একটি আলাদা শংসাপত্র নির্দিষ্ট করতে হবে। আপনার সর্বজনীন কীগুলি সাধারণত অবস্থিত থাকে /etc/ssh


নামযুক্ত প্রতিষ্ঠানের ডিএনএস-ভিত্তিক প্রমাণীকরণ Aut

নামযুক্ত প্রতিষ্ঠানের ডিএনএস-ভিত্তিক প্রমাণীকরণ (ডিএনএই) ( আরএফসি 6698 ) এসএসএইচএফপি আরআরের সম্ভাব্য উত্তরসূরি। DANE এসএসএইচএফপি আরআরের সাথে খুব মিল তবে এসএসএইচ-তে সীমাবদ্ধ নয়। এটিখুব অনুরূপ বিন্যাসের পরিবর্তে টিএলএসএ আরআর ব্যবহার করে।


ssh-keygen -rএডি 25519 টাইপ রেকর্ডগুলিও পরিচালনা করে (আইনা iana.org/assignments/dns-sshfp-rr-paraters/… থেকে পরীক্ষামূলক নম্বর 4 ব্যবহার করে )
ব্রায়ান

3
সার্ভারটি বৈধ, বা ডিএনএস সার্ভারের সাথে আপস করা হয়েছে।
মাইকেল মায়ার

7

আমি নিশ্চিত না যে ssh-keygenবিদ্যমান কীগুলি নিয়ে কাজ করে। যদি না হয় তবে আপনি সহজেই এগুলি আপনার শেলের (যা আমি পছন্দ করি), এবং অভিনব সফ্টওয়্যার বা দূরবর্তী ইন্টারফেস ছাড়াই সহজেই একত্র করতে পারি।

যেমন রেকর্ড যেমন উল্লেখ করা হয়েছে ...

my.domain.com IN SSHFP 2 1 72d30d211ce8c464de2811e534de23b9be9b4dc4

... 6 টি অংশের উপস্থিতি:

part 1: hostname
part 2: Usually "IN" for internet
part 3: "SSHFP", the RR name for type 44
part 4: RSA keys     = "1"
        DSA keys     = "2"
        ECDSA keys   = "3"
        ED25519 keys = "4"
part 5: The algorithm type:
        SHA-1        = "1"
        SHA-256      = "2"
part 6: You can generate, for example:

        $ awk '{print $2}' /etc/ssh/ssh_host_dsa_key.pub | \
            openssl base64 -d -A | openssl sha1

এটি ব্যবহার করতে VerifyHostKeyDNS askআপনার এসএসএইচ ক্লায়েন্টের কনফিগারেশনটি সাধারণত রাখুন ~/.ssh/config


5
রেকর্ডের জন্য, ssh-keygen -r নেই আসলে কমান্ডের নাম এটি জেনারেট করার জন্য একমাত্র দাড়ায় যে সত্ত্বেও বিদ্যমান চাবি জন্য SSHFP রেকর্ড উৎপন্ন।
সেলেদা

5

Ssh-keygen এর পুরানো সংস্করণগুলি সমস্ত উপলব্ধ কী উত্পন্ন করে না (উদাহরণস্বরূপ, ecdsa এবং sha256 এর জন্য সমর্থন নয়)। এই স্ক্রিপ্ট এতে সমস্ত উপলব্ধ কীগুলির জন্য সমস্ত রেকর্ড তৈরি করে /etc/ssh/:

#!/bin/bash
#
# Creates SSHFP Records for all available keys
#

HOST="${1-$(hostname -f)}"

if [[ "$1" == "-h" || "$1" == "--help" ]]
then
  echo "Usage: sshfpgen <hostname>"
fi

if which openssl >/dev/null 2>&1
then
  if ! which sha1sum >/dev/null 2>&1
  then
    sha1sum() {
      openssl dgst -sha1 | grep -E -o "[0-9a-f]{40}"
    }
  fi
  if ! which sha256sum >/dev/null 2>&1
  then
    sha256sum() {
      openssl dgst -sha256 | grep -E -o "[0-9a-f]{64}"
    }
  fi
fi

for pubkey in /etc/ssh/ssh_host_*_key.pub /etc/ssh_host_*_key.pub
do
  case "$(cut -d _ -f3 <<< "$pubkey")"
  in
    rsa)
      echo "$HOST IN SSHFP 1 1 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha1sum  | cut -f 1 -d ' ')"
      echo "$HOST IN SSHFP 1 2 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha256sum  | cut -f 1 -d ' ')"
    ;;
    dsa)
      echo "$HOST IN SSHFP 2 1 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha1sum  | cut -f 1 -d ' ')"
      echo "$HOST IN SSHFP 2 2 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha256sum  | cut -f 1 -d ' ')"
    ;;
    ecdsa)
      echo "$HOST IN SSHFP 3 1 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha1sum  | cut -f 1 -d ' ')"
      echo "$HOST IN SSHFP 3 2 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha256sum  | cut -f 1 -d ' ')"
    ;;
    ed25519)
      echo "$HOST IN SSHFP 4 1 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha1sum  | cut -f 1 -d ' ')"
      echo "$HOST IN SSHFP 4 2 $(cut -f2 -d ' ' "$pubkey" | base64 --decode | sha256sum  | cut -f 1 -d ' ')"
    ;;
  esac
done

সম্পাদনা করুন: * BSD সমর্থন সহ অ্যালেক্স-ডুপুয়ির PR এর সাথে নতুন সংস্করণ।

https://github.com/mindfuckup/Scripts/blob/master/sshfpgen


3

আপনি পুতুল ব্যবহার করেন, facterসমর্থন জন্য নির্মিত হয়েছে sshfp। এছাড়াও আপনি যদি পপেটডিবি ব্যবহার করছেন তবে আপনি সহজেই আপনার সমস্ত হোস্টের জন্য এই তথ্যটি বের করতে পারেন।

facter | grep -i sshfp
  sshfp_dsa => SSHFP 2 1 e1a3e639d6dbd48d3964ebfb772d2d11f1065682
  SSHFP 2 2 4f620ce2bc97d91ae5eff42fba621d65b677ab725f275f56b2abd1303c142b73
  sshfp_rsa => SSHFP 1 1 a78351af371faf3f19533c3a4a9e967543d7d2f5
  SSHFP 1 2 795943a6ee8b53c818cfef5781209e25a6eb4bc386813db60d3ff2c1569692fc

সূত্র


3

এই আমি মাধ্যমে আমার SSHFP রেকর্ড পেয়ে করছি Ansible :

- name: Capture the SSHFP entries
  shell: "ssh-keygen -r {{ ansible_nodename }}|awk '{print $4, $5, $6}'"
  register: sshfp_entries
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.