এসএসএইচ কী-ভিত্তিক প্রমাণীকরণ: পরিচিত_হোস্ট বনাম অনুমোদিত_কিজ


21

আমি লিনাক্সে ssh কী স্থাপন করার বিষয়ে পড়েছি এবং কিছু প্রশ্ন রয়েছে। আমি ভুল হলে শুধরে…

ধরা যাক হোস্ট টিআর-এলজিটিও ssh ব্যবহার করে হোস্ট টিআর-এমডিএমের সাথে সংযোগ করতে চায়। যদি আমরা নিশ্চিত হতে চাই যে এটি আসল ট্র-এমডিএম, আমরা known_hostsট্র-এমডিএম-তে একজোড়া কী তৈরি করি এবং আমরা পাবলিক কী টিআর-এলজিটিওতে যুক্ত করি। যদি টিআর-এমডিএম এটি আসল ট্র-এলজিটিও পরীক্ষা করে দেখতে চায়, তবে ট্র-এলজিটিওকে একটি কিপায়ার তৈরি করতে হবে এবং tr-mdm- এ সর্বজনীন কী যুক্ত করতে authorized_keysহবে।

প্রশ্ন 1 : সেখানে নেই ব্যবহারকারী ফাইল known_hosts শুধু IP ঠিকানা ও হোস্ট-নেম মধ্যে ক্ষেত্র। tr-mdm এর নিজস্ব .sshফোল্ডার সহ অনেক ব্যবহারকারী থাকতে পারে । আমাদের কি প্রতিটি known_hostsফাইলের জন্য পাবলিক কী যুক্ত করা উচিত ?

প্রশ্ন 2 : আমি খুঁজে পেয়েছি যে ssh-keyscan -t rsa tr-mdmtr-mdm এর সর্বজনীন কীটি ফিরিয়ে দেবে। আমি কীভাবে জানব যে এই কীটি ব্যবহারকারীর সাথে সম্পর্কিত? অধিকন্তু, সরকারী কীটি /root/.ssh/সেই আদেশটি যেটি দেয় তার থেকে পৃথক। এটা কিভাবে হতে পারে?



আমি প্রশ্ন @Gilles উল্লেখ এ একটি উত্তর "সম্বন্ধে সিকিউর ফাইল ধারণকারী সার্বজনিক কী" এ 'SSH' এর জন্য কিছু ব্যাকগ্রাউন্ড প্রসঙ্গ যোগ: < security.stackexchange.com/questions/20706/... >
IAM_AL_X

উত্তর:


33

আপনি ক্লায়েন্ট মেশিনে সার্ভার মেশিনের প্রমাণীকরণ এবং সার্ভার মেশিনে ব্যবহারকারীর প্রমাণীকরণ মিশ্রণ করছেন।

সার্ভারের প্রমাণীকরণ

এসএসএইচ সংযোগটি প্রতিষ্ঠিত হওয়ার পরে ঘটে যাওয়া প্রথমগুলির মধ্যে একটি হ'ল সার্ভারটি তার সর্বজনীন কীটি ক্লায়েন্টকে প্রেরণ করে এবং ক্লায়েন্টকে ( সর্বজনীন-কী ক্রিপ্টোগ্রাফির জন্য ধন্যবাদ ) প্রমাণ করে যে এটি সম্পর্কিত ব্যক্তিগত কী জানে। এটি সার্ভারকে প্রমাণীকরণ করে: প্রোটোকলের এই অংশটি সফল হলে, ক্লায়েন্ট জানেন যে সার্ভারটি সে এটির ভান করে is

ক্লায়েন্ট পরীক্ষা করতে পারে যে সার্ভারটি একটি পরিচিত, এবং কিছু দুর্বল সার্ভার সঠিক হিসাবে পাস করার চেষ্টা করছে না। এসএসএইচ সার্ভারের বৈধতা যাচাই করার জন্য কেবল একটি সহজ প্রক্রিয়া সরবরাহ করে: এটি ~/.ssh/known_hostsক্লায়েন্ট মেশিনে থাকা ফাইলগুলিতে (একটি সিস্টেম-ওয়াইড ফাইল রয়েছে /etc/ssh/known_hosts) আপনার ইতিমধ্যে সংযুক্ত সার্ভারগুলির কথা মনে রাখে । আপনি যখন প্রথমবার কোনও সার্ভারের সাথে সংযুক্ত হন, আপনাকে অন্য কোনও মাধ্যমে পরীক্ষা করে দেখতে হবে যে সার্ভারের দ্বারা উপস্থাপিত সর্বজনীন কী সত্যই আপনি যে সার্ভারে সংযোগ করতে চেয়েছিলেন সেটির সর্বজনীন কী। আপনি যে সার্ভারটির সাথে সংযোগ করতে চলেছেন তার সার্বজনীন কী আপনার কাছে থাকলে আপনি ~/.ssh/known_hostsনিজেই ক্লায়েন্টে এটি যুক্ত করতে পারেন can

আপনি কোনও গোপনীয় ডেটা প্রেরণের আগে সার্ভারকে প্রমাণীকরণ করতে হবে। বিশেষত, যদি ব্যবহারকারীর প্রমাণীকরণের সাথে একটি পাসওয়ার্ড জড়িত থাকে তবে পাসওয়ার্ডটি কোনও অযৌক্তিক সার্ভারে প্রেরণ করা উচিত নয়।

ব্যবহারকারী প্রমাণীকরণ

সার্ভারটি কেবলমাত্র কোনও দূরবর্তী ব্যবহারকারীকে লগইন করতে দেয় যদি সেই ব্যবহারকারী প্রমাণ করতে পারে যে তাদের সেই অ্যাকাউন্টটি অ্যাক্সেস করার অধিকার রয়েছে। সার্ভারের কনফিগারেশন এবং ব্যবহারকারীর পছন্দের উপর নির্ভর করে ব্যবহারকারী বিভিন্ন শংসাপত্রের একটি উপস্থাপন করতে পারেন (নীচের তালিকাটি নিখরচায় নয়)।

  • ব্যবহারকারী যে অ্যাকাউন্টটিতে লগ ইন করতে চাইছেন তার পাসওয়ার্ডটি উপস্থাপন করতে পারে; সার্ভারটি তখন যাচাই করে যে পাসওয়ার্ডটি সঠিক।
  • ব্যবহারকারী একটি সর্বজনীন কী উপস্থাপন করতে পারে এবং প্রমাণ করতে পারে যে সে সেই পাবলিক কীটির সাথে সম্পর্কিত ব্যক্তিগত কী রয়েছে। এটি হুবহু একই পদ্ধতি যা সার্ভারের প্রমাণীকরণের জন্য ব্যবহৃত হয় তবে এখন ব্যবহারকারী তাদের পরিচয় প্রমাণ করার চেষ্টা করছেন এবং সার্ভার তাদের যাচাই করছে is লগইন প্রচেষ্টা স্বীকার করা হয় যদি ব্যবহারকারী প্রমাণ করে যে তিনি ব্যক্তিগত কী জানেন এবং পাবলিক কী অ্যাকাউন্টের অনুমোদনের তালিকায় রয়েছে ( ~/.ssh/authorized_keysসার্ভারে)।
  • আর এক ধরণের পদ্ধতিতে ক্লায়েন্ট মেশিনে ব্যবহারকারীকে প্রমাণীকরণের কাজের অংশ অর্পণ করা জড়িত। এন্টারপ্রাইজগুলির মতো নিয়ন্ত্রিত পরিবেশে এটি ঘটে যখন অনেকগুলি মেশিন একই অ্যাকাউন্টগুলি ভাগ করে। সার্ভার ক্লায়েন্ট মেশিনটিকে একই পদ্ধতি দ্বারা প্রমাণিত করে যা অন্যভাবে ব্যবহৃত হয়, তারপরে ব্যবহারকারীকে প্রমাণীকরণের জন্য ক্লায়েন্টের উপর নির্ভর করে।

1
দুর্দান্ত উত্তর গিলস, তবে আমার প্রশ্নটি হ'ল যে কোনও সার্ভার একটি এলোমেলো পাবলিক কী প্রেরণ করতে পারে এবং প্রমাণ করতে পারে যে এর সাথে সম্পর্কিত পাবলিক কী রয়েছে। এটি কীভাবে প্রমাণ করে যে সার্ভারটি খাঁটি?
অ্যালেক্স

@ স্পার্টাকাস আমি মনে করি আপনি বোঝাতে চেয়েছিলেন এবং প্রমাণ করুন যে এটির সাথে সম্পর্কিত ব্যক্তিগত কী রয়েছে ", তাই না? ধারণাটি হ'ল ক্লায়েন্টটি এলোমেলোভাবে উত্পন্ন মান (একটি চ্যালেঞ্জ ) সার্ভারে প্রেরণ করে এবং সার্ভারটি ব্যক্তিগত চাবির উপর নির্ভর করে কিছু গণনা করে যা চ্যালেঞ্জের উপর নির্ভর করে (সুতরাং সার্ভারটি এটি না পাওয়া পর্যন্ত গণনা করতে পারে না) চ্যালেঞ্জ) এবং এটি কেবলমাত্র ব্যক্তিগত কীটির জ্ঞান দিয়েই করা যেতে পারে।
গিলস

আমার মনে হয় ক্লায়েন্ট সার্ভারের সাথে প্রথমবার সংযোগ স্থাপন করে অ্যালেক্স বোঝায়। আমি মনে করি ক্লায়েন্টটি প্রথমবার সার্ভারটিতে বিশ্বাস করবে। তারপরে সার্ভারটি তার সর্বজনীন কী প্রেরণ করবে এবং ক্লায়েন্ট নিম্নলিখিত সংযোগগুলির জন্য সার্ভারটি প্রমাণীকরণ করতে সক্ষম হবে।
synack

@ সিন্যাক আহ, প্রথমবার? পরিবর্তে, ক্লায়েন্ট ব্যবহারকারীকে সিদ্ধান্তটি কমিয়ে দেয় ("আপনি কি নিশ্চিত যে আপনি সংযোগ চালিয়ে যেতে চান (হ্যাঁ / না)?"))। সার্ভার সেই মুহুর্তে কিছুই প্রমাণ করে না।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

আপনি ঠিক বলেছেন, সিদ্ধান্ত গ্রহণকারী ব্যবহারকারী।
synack

2

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

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