সার্ভারগুলিতে পাবলিক কীগুলি কীভাবে "প্রেরিত" হয় এবং কীভাবে এসএসএইচের জন্য ব্যক্তিগত কীগুলি "ব্যবহৃত" হয়?


11

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

আমি উপরে যা কিছু বলেছি তা যদি ভুল বা বিভ্রান্ত হয় তবে দয়া করে আমাকে সংশোধন করে শুরু করুন!

ধরে নিচ্ছি আমি লক্ষ্যমাত্রায় কমবেশি:

  • কীভাবে একটি "দেবে" বি এর পাবলিক কী ( id_rsa.pub)? এটি কি একটি ম্যানুয়াল প্রক্রিয়া হতে হবে, বা এটি স্বয়ংক্রিয়ভাবে করা যেতে পারে? যদি ম্যানুয়াল, প্রক্রিয়া কি? যদি স্বয়ংক্রিয় হয়, আদেশ কি? বি যখন এই সার্বজনীন কীটি "পায়", এটি কোথায় যায় বা সঞ্চয় করা হয়?
  • বি-তে এসএসএইচ সংযোগের সূচনা করার সময়, কীভাবে এ id_rsaসংযোগের অংশ হিসাবে এটির ব্যক্তিগত কী ( ) ব্যবহার করে ?

3
ডাউনটোট কেন সান ব্যাখ্যা দেয়? এটি গবেষণা দেখায়, এটি একটি এসএসসিসিই , এবং আমার জ্ঞানের কাছে কোনও সদৃশ নয়। যদি আপনি দ্বিমত পোষণ করেন, এবং এটি একটি সদৃশ বলে মনে করেন, দয়া করে আপনার মনে হওয়া প্রশ্নের একটি লিঙ্ক সরবরাহ করুন এটির এটির সদৃশ!
ব্যবহারকারী3178622

যদিও আমি উঁচু হই নি এবং এই প্রশ্নটি কোনওভাবেই খারাপ বলে মনে করি না, সম্ভবত তথ্য সুরক্ষা স্ট্যাকটি আরও উপযুক্ত জায়গা হবে।
এমসি 10

3
আমি ভোটও হ্রাস করি নি, তবে কেন বুঝতে পেরেছি কেউ। এটি একটি বহুল ব্যবহৃত login
টাইসন

5
কোড সম্পর্কে নয় এমন প্রশ্নের ক্ষেত্রে এসএসসিসিই ধারণাটি সত্যই প্রযোজ্য নয়।
স্কট

2
সদৃশ নয় তবে সম্পর্কিত: superuser.com/questions/383732/how-does-ssh-encryption-work । প্রশ্নের দ্বিতীয় অংশের উত্তর দিতে পারে (কীভাবে কী কী ব্যবহার করা হয়)
জে

উত্তর:


5

ssh-keygenসরকারী এবং ব্যক্তিগত উভয় কী তৈরি করে, যা প্রাথমিকভাবে কেবল স্থানীয়ভাবে থাকে। অন্য হোস্টকে সর্বজনীন কী প্রদান করা হ'ল এটি যা সার্ভার বি এর জন্য দায়ী কোনও ব্যক্তির কাছে প্রেরণ করে বা ম্যানুয়ালি পাসওয়ার্ড সহ আপনার একটি অ্যাকাউন্ট থাকলে আপনি নিজে লগইন করতে পারেন man সার্ভার বিতে পাসওয়ার্ডহীন লগইন করার অনুমতি দেওয়ার জন্য আপনাকে সার্ভার বিতে আপনার পাবলিক কীটি to / .ssh / अधिकृत_keys ফাইলে যুক্ত করতে হবে (প্রতি লাইনে একটি পাবলিক কী, এই ফাইলে কোনও সংখ্যক কী থাকতে পারে)। একটি লিনাক্স কমান্ড রয়েছে ssh-copy-idযা আপনার জন্য আইডিটি অনুলিপি করে ফাইলটিতে রাখবে।

ডিফল্টরূপে, ssh আপনার ব্যক্তিগত কী হিসাবে ~ / .ssh / id_XXX ফাইলটি ব্যবহার করবে। XXX, আরএসএ, ডিএসএ বা কোনও প্রোটোকল হতে পারে যার জন্য একটি কী তৈরি করা হয়েছিল। আইআইআরসি, ডিএসএ পুরানো এবং ব্যবহার করা উচিত নয়। আপনি যদি অন্য কোনও ব্যক্তিগত কী ব্যবহার করতে চান তবে আপনি এটি ব্যবহার করে এটি আপনার ssh কমান্ডে নির্দিষ্ট করতে পারেন -i। যতক্ষণ না ব্যক্তিগত কী ব্যবহার করা হচ্ছে যতক্ষণ না দূরবর্তী মেশিনে পাবলিক কীটির সাথে মেলে (ব্যবহারকারী যে অ্যাকাউন্টে আপনি লগ ইন করছেন তার জন্য অনুমোদিত_কিজি ফাইলে), তবে আপনাকে একটি পাসওয়ার্ড সরবরাহ করার প্রয়োজন হবে না।


ধন্যবাদ @ বামপুকি - কয়েকটি ফলোআপ: (1) চালানো হলে ssh-keygen, আপনি উল্লেখ করেছেন যে দুটি কী "স্থানীয়ভাবে কেবল" থাকে "? কোথায়?!? হিসাবে, আমি কোন ফোল্ডারে নেভিগেট করতে এবং দেখতে id_rsa.pubএবং দেখতে id_rsaপারি? (২) আমি ভেবেছিলাম ssh-addকোন পাবলিক কী যুক্ত করার আদেশ ছিল authorized_keys, না? মধ্যে পার্থক্য কি ssh-copy-idএবং ssh-add? আবার ধন্যবাদ!
ব্যবহারকারী3178622

2
@ ইউজার 3178622 পুনরায় '1' আমার সামনে নেই তবে এটি ~/.ssh/id_rsa '2' বলে মনে হচ্ছে , এসএসএস-অ্যাড অনুমোদিত_কিগুলিতে যুক্ত করার জন্য নয়, এটি একটি কীচেইনে যুক্ত করার জন্য নয় .. আমি ssh ব্যবহার করি নি - যদিও। এসএসএস-অ্যাড হ'ল আপনাকে যখনই কোনও কীফ্রেসের প্রয়োজন হবে এমন কী ব্যবহার করার সময় আপনাকে কোনও কীফ্রেস প্রবেশ করতে হবে না তা সক্ষম করে তোলা। সুতরাং যদি আপনার এসএস কীগুলির কোনও কিফ্রেসের প্রয়োজন হয় না তবে আমি অনুমান করি যে এসএসএড-অ্যাড ব্যবহার করার কোনও কারণ নেই এবং আমার মনে হয় আপনার এখনও শ্যাশ-অনুলিপি-আইডি ব্যবহার করতে হবে বা পাবলিক কীটিতে ম্যানুয়ালটি অনুলিপি করতে হবে অনুমোদিত_
কুকি

2
ssh-keygen আপনাকে ফাইলটি কোথায় সংরক্ষণ করতে হবে তা জিজ্ঞাসা করবে, তবে ডিফল্ট অবস্থানটি remote / .ssh / ssh-copy-id- এ রয়েছে একটি সরকারী হোস্টে সর্বজনীন কী অনুলিপি করে। ssh-add আপনার স্থানীয় ক্যারিংগুলিতে একটি ব্যক্তিগত কী যুক্ত করে। আপনার স্থানীয় কীরিংয়ে একটি প্রাইভেট কী যুক্ত করার অর্থ একটি ssh সংযোগের চেষ্টা করার সময় এটি ডিফল্টরূপে পরীক্ষা করা হবে (এটি -i সহ নির্দিষ্ট করে না দিয়ে)।
বামাপুকি

1
@ বামাপুকি যেখানে আপনি লিখছেন "আপনার স্থানীয় কেরিংয়ে একটি প্রাইভেট কী যুক্ত করার অর্থ একটি এসএসএস সংযোগের চেষ্টা করার সময় এটি ডিফল্টরূপে পরীক্ষা করা হবে (এটি -i সহ নির্দিষ্ট করে না দিয়েই)" <--- এটি স্পষ্ট করে বলার অপেক্ষা রাখে না আমি মনে করি আপনার অর্থ এটি বেছে নেওয়া ডিফল্ট প্রাইভেট কী পরিবর্তন করে, যাতে এটি id_rsa পরিবর্তে এটি কীরিং থেকে আসে। (অবশ্যই, এস-এস-অ্যাড ছাড়াই আপনাকে এখনও -i সহ একটি ব্যক্তিগত কী নির্দিষ্ট করতে হবে না, এটির একটি ডিফল্ট থাকবে, কেবল অন্যরকম ডিফল্ট)।
বারলপ

3

দুটি এ লিনাক্স মেশিন রয়েছে, এ এবং বি স্ক্রিপ্টগুলি এ-তে চালিত হওয়া দরকার, যাতে বি এস তে এসএসএইচ করতে সক্ষম হবেন সুতরাং একটি পাবলিক কী তৈরি করে (সম্ভবত একটি এসএসএস-কীজেন-উত্পাদিত id_rsa.pub), এবং তারপরে তার নিজস্ব ব্যক্তিগত কী ( আবার, সম্ভবত id_rsa) যে এসএসএইচ সংযোগ করতে।

আমি উপরে যা কিছু বলেছি তা যদি ভুল বা বিভ্রান্ত হয় তবে দয়া করে আমাকে সংশোধন করে শুরু করুন!

ধরে নিচ্ছি আমি লক্ষ্যমাত্রায় কমবেশি:

হাঁ

তবে খ এর সাথে বি এর সাথে সংযোগ স্থাপন করতে সক্ষম হবার জন্য বি এর অনুমোদিত_কিজি ফাইলগুলিতে তালিকাভুক্ত হওয়ার জন্য এ এর ​​পাবলিক কী দরকার

এছাড়াও আপনি id_rsa.pub মুছে ফেলতে পারেন এবং বি তে এসএসএস করতে পারেন এবং এটি এখনও কাজ করবে, কারণ পাবলিক কী প্রতিটি এসএসএস সংযোগের সাথে নতুনভাবে উত্পন্ন এবং কোনও id_rsa.pub এ সংরক্ষণ করা হয়নি is

কীভাবে একটি "বি" দেয় তার সর্বজনীন কী (id_rsa.pub)? এটি কি একটি ম্যানুয়াল প্রক্রিয়া হতে হবে, বা এটি স্বয়ংক্রিয়ভাবে করা যেতে পারে? যদি ম্যানুয়াল, প্রক্রিয়া কি? যদি স্বয়ংক্রিয় হয়, আদেশ কি?

ম্যানুয়াল - কিছু

এ- থেকে

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

বা আরও বেশি নিজেই, কমান্ডটি ভাঙ্গার জন্য

একটি $ cat id_rsa.pub | ssh user@host 'cat>~/a.a'

তারপরে বি তে, sure / .ssh বিদ্যমান আছে তা নিশ্চিত করুন then cat a.a >> ~/.ssh/authorized_keys

এবং আপনি কী এর তালিকাভুক্ত হয়েছে তা নিশ্চিত করার আগে এবং পরে বি এর অনুমোদিত_কিজ বিড়াল করতে পারেন।

অথবা আপনি id_rsa.pub কোনও ইমেল অ্যাকাউন্টে ইমেল করতে পারেন, তারপরে বি, বি থেকে ইমেলটি চেক করতে এবং id_rsa.pub এর বিষয়বস্তুগুলি তার অনুমোদিত_কিজ ফাইলটিতে যুক্ত করতে পারেন

স্বয়ংক্রিয়ভাবে

Ssh-copy-id কমান্ড

আপনার ssh করতে সক্ষম হতে হবে, তাই আপনার পাসওয়ার্ড অ্যাক্সেস প্রয়োজন

Ssh ব্যবহারকারীর @ হোস্ট করার পরিবর্তে আপনি ssh-copy-id ব্যবহারকারী @ হোস্ট করেন এবং আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ জানানো হয়, আপনি এটি প্রবেশ করুন, আপনি এতে আছেন, এটি সর্বজনীন কী অনুলিপি করবে। এবং পরের বার আপনি যখন ssh ব্যবহারকারীর @ হোস্ট করবেন এটি কীটি ব্যবহার করবে।

বি যখন এই সার্বজনীন কীটি "পায়", এটি কোথায় যায় বা সঞ্চয় করা হয়?

বি এর ~ / .ssh / অনুমোদিত_কিগুলি ke

বি-তে এসএসএইচ সংযোগের সূচনা করার সময়, কীভাবে একটি সংযোগের অংশ হিসাবে এটির একটি ব্যক্তিগত কী (আইডি_আরসা) ব্যবহার করে?

ভাল, আমি এ সম্পর্কে আমার মাথার উপরের দিক থেকে খুব বেশি কিছু জানি না, তবে যা কিছু একটি কী দিয়ে এনক্রিপ্ট করা হয় তা অন্য কী দিয়ে ডিক্রিপ্ট করা যায় এবং নিজেকে সনাক্ত করা ডেটা প্রেরণে কিছুটা আলাদা .. এবং কিছু থাকতে পারে একটি অস্থায়ী কী সম্পর্কে।


ধন্যবাদ @ বারলপ! বামাপুকির উত্তরের নীচে আমার প্রশ্নগুলি দেখুন; আমি আপনার জন্য একই প্রশ্ন আছে!
ব্যবহারকারী3178622
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.