এসএসএইচ একই সার্বজনীন আইপি ঠিকানার NAT'd সার্ভারগুলিতে


16

আমি অফিসে এক্স থেকে শুরু করে অফিস ওয়াইয়ের কয়েকটি লিনাক্স বাক্সে এসএসএইচ করার চেষ্টা করছি office অফিস ওয়াইয়ের লিনাক্স বাক্সগুলি NAT এর পিছনে রয়েছে এবং প্রতিটি তাদের নিজস্ব বন্দরে চালায়। আমি এসএসএইচের মাধ্যমে সফলভাবে তাদের সকলের কাছে পৌঁছাতে পারি, তবে আমি প্রমাণীকরণ করতে পারি না।

আমি প্রথম বাক্সে এসএসএইচ করতে সক্ষম হয়েছি, কিন্তু আমি যখন দ্বিতীয়টিতে পৌঁছলাম তখন এটি বলেছিল:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
[edited out fingerprint]
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1

আমার বোধগম্যতা হল যে public পাবলিক আইপি ঠিকানা থেকে এটি একই কীটি প্রত্যাশা করছে তবে এটি অন্যরকম দেখতে পাচ্ছে কারণ এটি একটি ভিন্ন এসএসএইচ সার্ভার।

আমি কীভাবে এটি ঠিক করতে পারি যাতে এটি একই আইপি ঠিকানার পিছনে প্রতিটি সার্ভার থেকে আলাদা কী তৈরি করে / গ্রহণ করে?

এখানে চিত্র বিবরণ লিখুন


1
হাতে টানা মেঘের জন্য +1।
জোগ

উত্তর:


15

হোস্টনাম বা আইপি ঠিকানাটি আপনার known_hostsফাইলে হ্যাশ হিসাবে সংরক্ষণ করা হচ্ছে (বা বিকল্প এবং সংস্করণ ডিফল্টের উপর নির্ভর করে সরল পাঠ্যে) । সবচেয়ে সহজ কাজটি হ'ল প্রতিটি হোস্টের জন্য /etc/hostsএকই আইপি (ডাব্লুএএন) ঠিকানার সাথে ডিএনএস বা (উঘ!) ফাইলটিতে একটি এন্ট্রি যুক্ত করা /etc/hosts:

your.wan.ip.address      servera serverb

এবং তারপরে sshহোস্টনাম এবং পোর্ট দ্বারা।


22

এটি ঠিক করার কয়েকটি উপায় রয়েছে:

  1. আপনি এই নির্দিষ্ট হোস্টের জন্য হোস্ট কী চেকিং অক্ষম করতে পারেন। আপনার ssh_configফাইল ( ~/.ssh/config) এ, এর মতো কিছু রাখুন:

    Host remote.host.name
    UserKnownHostsFile /dev/null
    StrictHostkeyChecking no
    

    এটি sshকখনই হোস্ট কীগুলি সংরক্ষণের জন্য কনফিগার করে না remote.host.nameতবে খারাপ দিকটি হ'ল এখন আপনি মধ্য-মধ্যের আক্রমণগুলির জন্য উন্মুক্ত (কারণ আপনি অন্ধভাবে হোস্ট কী গ্রহণ করছেন আপনি রিমোট হোস্ট কী পরিবর্তিত হয়েছে কিনা তা বলতে পারবেন না)।

  2. প্রতিটি হোস্টকে অনন্য known_hostsফাইল দেওয়ার জন্য আপনি অনুরূপ কৌশল ব্যবহার করতে পারেন :

    Host hosta
    Port 10098
    Hostname remote.host.name
    UserKnownHostsFile ~/.ssh/known_hosts_hosta
    
    Host hostb
    Port 10099
    Hostname remote.host.name
    UserKnownHostsFile ~/.ssh/known_hosts_hostb
    

    এরপরে আপনি এই হোস্টগুলির সাথে ssh hostaবা এর সাথে সংযোগ স্থাপন করবেন ssh hostbএবং sshএকত্রীকরণ ফাইল থেকে প্রকৃত হোস্টনাম এবং পোর্টটি নেবেন।


4
না, /etc/hostsফাইলটি পরিবর্তন করেও কাজ করবে। আমি এটি আরও ভাল পছন্দ করি কারণ (ক) এর জন্য বাড়ানো সুবিধার দরকার নেই এবং (খ) এর অর্থ আপনার কমান্ড লাইনে পোর্ট সংখ্যা নির্দিষ্ট করার দরকার নেই।
5515

1
হোস্টা এবং হোস্টবাকে ডাব্লুএএন আইপি ঠিকানার সাথে সংযুক্ত করতে নাম রেজোলিউশন (হোস্ট বা ডিএনএস) এখনও এই উভয় সমাধানে প্রয়োজন হবে। তবে উভয়ই দুর্দান্ত পরামর্শ হ'ল আমি এলএল সম্পাদনাতে টাইপ করতে খুব অলস ছিলাম: কেবল সেখানে হোস্টনামটি লক্ষ্য করেছি - নাম রেজোলিউশন সম্পর্কে এটি স্ক্র্যাচ করুন।
ব্র্যান্ডন জাভিয়ার

2
@ কপিআরনস্টার্ট: আপনার কমান্ড লাইনে পোর্টটি নির্দিষ্ট করার দরকার নেই কারণ এটি ইতিমধ্যে আপনার ~/.ssh/config(প্রত্যেকের জন্য আলাদা পোর্ট hosta hostb) লারস্কের উত্তরে বর্ণিত হিসাবে নির্দিষ্ট করা আছে। একইভাবে আপনি এখন সব কমান্ড লাইন যা করতে হবে বিভিন্ন হোস্টের জন্য এই কনফিগ ফাইল বিভিন্ন ব্যবহারকারীর নাম, কি, ইত্যাদি উল্লেখ করতে পারেন ssh hostaবাssh hostb
arielf

3
আমি যদি দুবার ~ / .ssh / config upvote করতে পারি, আমি চাই। / ইত্যাদি / হোস্টগুলির সাথে ফিডলিং রাস্তায় নামার ফলে অন্যান্য সমস্যা সমাধানের সমস্যা হতে বাধ্য।
অ্যারন

1
এটি আইএমও, / ইত্যাদি / হোস্টগুলি সংশোধন করার চেয়ে আরও ভাল সমাধান। একটি ছোটখাটো বাচ্চা হিসাবে, আমি HostKeyAliasপরিচিত হোস্টকে বিভিন্ন ফাইলে বিভক্ত করার পরিবর্তে নির্দেশটি ব্যবহার করব । উদাহরণস্বরূপHostKeyAlias hosta
ক্রিমসন-এগ্রেট

8

আপনি সোলারিসের কোন সংস্করণটি (এবং আরও গুরুত্বপূর্ণভাবে, এসএসএইচ) ব্যবহার করছেন তা বলবেন না, তবে যথেষ্ট পরিমাণে ওপেনএসএসএইচ-র সংস্করণগুলি এই সমস্যার সমাধান করেছে।

আমার known_hostsফাইলটি থেকে এখানে দুটি এন্ট্রি রয়েছে , যার একই আইপি ঠিকানা রয়েছে তবে বিভিন্ন পোর্ট সংখ্যা রয়েছে (একটি হ'ল অন্তর্ভুক্ত 22); আপনি দেখতে পাবেন যে সঞ্চিত কীগুলি এক নয়।

[10.69.55.47]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAo+zenWwhFWAa/exdxbm3A3htDFGwFVjFlHLO83AfOaloBbBrr6whmLeDqVPBSwI/yrePClpahLUMYE6qGBFCbbOYiQkMDwacNFfxvxd6oCMDDqZH6NWGiBCt0b2M6YKYhYCw6z8n0yvlLk1eTdpp2OpjbfwAIe4eBkWyKNZY9+17VtzARqGR9tgHC8Dh7HBApDR8wooc+XzY6FhD2b21meIt8r8bjfBIu5t6eQgDHh/TzUT1rGH6W0HeUJxpDnpud5Af1ygMEQFrGrzHi5HKtg+K6HFBggMF8t6p2Dz8oMds5pi6IuPlVi3UvO1X7mMJ9pP7ByMQqiVrQ9wtAbC2QQ==
10.69.55.47 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1clJ6vp8NDy7D9YVgAKQQzERfx3scR0c0027yOYGGpeLg+nW+x8mJk1ia9GouUTDME+NP2YDVZUEDog9rtTJvuLd22ZxfoC8LGboyBsmlhOVxdSCxmA/+blPCp1pyocr8pXyXjSkb/qQKKQMRoAU7qKKHPfI5Vugj04l6WbW2rJQTqFD/Lguc8AAUOE6K4DNhETOH2gOnwq6xi0vutDmeUKSqEvM/PQFZSlOL4dFDYO5jAUjvgm6yGHP3LlS9fmCzayJgGgLSnNz0nlcd94Pa1Cd441cCAZHFDvDPniawEafH9ok4Mmew0UGopQGUGbfb5+8g8YphLW6aLdrvnZbAw==

আমি জানি না যে ওপেনএসএইচ-এর কোন সংস্করণ এটি চালু করেছে, তবে আমি চলছি

[me@risby fin]$ ssh -V
OpenSSH_6.9p1, OpenSSL 1.0.1k-fips 8 Jan 2015

3

@আরার্কস জবাব আমার মন্তব্যটি প্রসারিত করার জন্য, আমি মনে করি ~/.ssh/configএন্ট্রিগুলি ব্যবহার করে / ইত্যাদি / হোস্টগুলি সংশোধন করার চেয়ে অনেক ভাল, যদিও আমি HostKeyAliasপরিচিত হোস্টকে বিভিন্ন ফাইলে বিভক্ত করার পরিবর্তে ব্যবহার করব । উদাহরণ:

Host hosta
Port 10098
Hostname remote.host.name
HostKeyAlias hosta

এবং একইভাবে জন্য hostb

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.