একাধিক গিথুব প্রকল্পগুলির জন্য একই স্থাপনা কী ব্যবহার করা


94

গিথুব একাধিক প্রকল্পের জন্য একই ssh ডিফলি কী ব্যবহার করার অনুমতি দেয় না যা কিছু ক্ষেত্রে (যেমন সিআই সার্ভার বেসরকারী সাব-মডিউলগুলির সাথে প্রকল্পের সাথে ডিলিং করে) কার্যকর হবে। আমি বিভিন্ন থ্রেড দেখেছি যা বলে মনে হচ্ছে যে 'সুরক্ষা কারণে' এই সীমাবদ্ধতা রয়েছে, তবে ঠিক কী কী ঝুঁকি বাড়বে সে সম্পর্কে এখনও আমার দৃ explanation় ব্যাখ্যা পাওয়া যায়নি।

মনে রাখবেন যে গিথুব অ্যাকাউন্ট স্তর কীগুলি পুনরায় ব্যবহারের অনুমতি দেয় না তার অর্থটি বোঝায় (দুই ব্যবহারকারীর চাবি ভাগ করে নেওয়া উচিত নয়)। আমি জিজ্ঞাসা করছি এটি ডিপ্লয় কীগুলির উপর কেবলমাত্র বাধা ।

এবং স্পষ্টতই, আমি কাজের ক্ষেত্রগুলি খুঁজছি না (একটি ছদ্মবেশী ব্যবহারকারী তৈরি করুন, একাধিক কী ব্যবহার করুন, ...), তবে কেবল ডিপ্লয় কীগুলিতে এই সীমাবদ্ধতার জন্য একটি প্রশংসনীয় ব্যাখ্যার জন্য।

সম্পর্কিত থ্রেড:


যেহেতু এর চেয়ে ভাল আর কোনও উপায় নেই আমরা একটি ডেডিকেটেড ডিপ্লোয়মেন্ট ব্যবহারকারী তৈরি করেছি যাকে আমরা রিপোজিটরিগুলিতে কেবল পঠনযোগ্য অ্যাক্সেস দিচ্ছি। শেষ ফলাফল একই।
ডেটাজেক

গ্রেট উত্তর এখানে উপর: stackoverflow.com/questions/11656134/...
apple16

উত্তর:


22

আপনার রেফারেন্সের দ্বারা চিত্রিত একমাত্র কারণ (একক "বিল্ড" ব্যবহারকারী তৈরি করা, বা id_rsa.REPONAME.pubপ্রতি রেপো একই ভাগ করে নেওয়া ):

বিভিন্ন ব্যবহারকারীর জন্য সর্বজনীন / ব্যক্তিগত কী ভাগ করে নেওয়া এড়ান avoid

যদিও এটি আপনার পরিস্থিতিতে না ঘটে (একাধিক প্রকল্প তৈরি করুন), একই ssh কীটি পুনরায় ব্যবহারের অনুমতি দেওয়ার ফলে দুটি পৃথক ব্যবহারকারীদের একই ssh কী ভাগ করার সম্ভাবনা খুলে যাবে যা প্রমাণীকরণের উদ্দেশ্যকে পরাস্ত করবে ।

প্রমাণীকরণ মাধ্যম:
"একটি নির্দিষ্ট SSH কী ব্যবহার করে পরোক্ষভাবে উচিত যে আপনি অনুমিত হয় যারা জানেন এটা ব্যবহার করছে"।


গিটহাব পৃষ্ঠা " ডিপ্লাই কীগুলি পরিচালনা করা " ssh ব্যবহার করে বিভিন্ন অ্যাকাউন্টের বিবরণ দেয়:

  • এসএসএইচ এজেন্ট ফরওয়ার্ডিং : এজেন্ট ফরোয়ার্ডিং যখন আপনি সার্ভারে এসএসএইচ করুন এবং গিট কমান্ডগুলি চালান তখন আপনার স্থানীয় বিকাশ মেশিনে ইতিমধ্যে সেট করা এসএসএইচ কীগুলি ব্যবহার করে।
    আপনি দূরবর্তী সার্ভারগুলিকে আপনার স্থানীয় এসএস-এজেন্টকে বেছে বেছে অ্যাক্সেস করতে দিতে পারেন যেমন এটি সার্ভারে চলছে।
    সুতরাং সার্ভারে আপনার ব্যক্তিগত কী প্রতিলিপি প্রয়োজন হয় না।

  • মেশিন ব্যবহারকারী : (এটি "ডামি অ্যাকাউন্ট" কৌশল) কোনও ব্যবহারকারীর অ্যাকাউন্টে কী যুক্ত করুন। যেহেতু এই অ্যাকাউন্টটি কোনও মানুষ ব্যবহার করবে না, একে মেশিন ব্যবহারকারী বলে।
    আপনি এই ব্যবহারকারীর সাথে একইভাবে আচরণ করবেন আপনি যেমন কোনও মানুষের মত, মেশিন ব্যবহারকারীর অ্যাকাউন্টে কীটি এমনভাবে সংযুক্ত করুন যেন এটি কোনও সাধারণ অ্যাকাউন্ট।
    অ্যাকাউন্টের সহযোগী বা টিমের অ্যাক্সেসের প্রয়োজন এমন রেपोগুলিতে মঞ্জুরি দিন।
    সুতরাং একটি "মেশিন ব্যবহারকারীর" সাথে সম্পর্কিত একটি ব্যক্তিগত কী, প্রতি সার্ভারে একটি।

( DHA তুলে ধরে মন্তব্য একটি প্রয়োগের মূল সীমা নম্বরে, এবং সত্য আপনি যদি শুধুমাত্র একটি মেশিন ব্যবহারকারীর অ্যাকাউন্ট থাকতে পারে)

  • কী ডিপ্লোয় করুন (প্রতি গিটহাব রেপো এক) এসএসএইচ কী যা সার্ভারে সঞ্চিত থাকে এবং গিটহাবের একক রেপোতে অ্যাক্সেস দেয়।
    এই কীটি কোনও ব্যবহারকারীর অ্যাকাউন্টের পরিবর্তে সরাসরি রেপোতে সংযুক্ত থাকে
    আপনার অ্যাকাউন্ট সেটিংসে যাওয়ার পরিবর্তে লক্ষ্য রেপোর প্রশাসকের পৃষ্ঠাতে যান।
    " Deploy Keys" এ যান এবং " " ক্লিক করুন Add deploy key। সর্বজনীন কীটি এতে আটকান এবং জমা দিন।

এবার, ssh কী কোনও ব্যবহারকারীর সাথে সংযুক্ত নেই (যার জন্য আপনি বেশ কয়েকটি রেপোতে অ্যাক্সেস দিতে পারেন), তবে একটি রেপোতে। বেশ কয়েকটি রেপোর
জন্য ssh অ্যাক্সেস প্রদান করা "মেশিন ব্যবহারকারী" এর সমতুল্য।

প্রমাণীকরণের মেয়াদে :

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

53
গিটহাব অ্যাকাউন্ট স্তর স্তরের পাবলিক কী এবং প্রকল্প স্তরের কীগুলি (ওরফে ডিপ্লোয় কীগুলি) উভয় সমর্থন করে । অ্যাকাউন্ট স্তরের কীগুলি পুনরায় ব্যবহারের অনুমতি না দেওয়া অর্থবোধ করে, তবে আমি দাবি করি যে এটি ডিপ্লয় কীগুলির জন্য এটিকে মঞ্জুরি দেয় না। আমার এক অ্যাকাউন্ট লেভেল কীটি আমার সমস্ত প্রকল্পগুলিতে অ্যাক্সেসের অনুমতি দেয়, তাহলে আমার কেন কিছু প্রকল্পের অ্যাক্সেসের অনুমতি দেয় এমন একটি ডিপিলি কী আমার কাছে নেই? এটি কেবলমাত্র আরও সীমাবদ্ধ এবং আমি দেখতে পাবার মতো উদ্বেগ তৈরি করে না। দুটি ভিন্ন ব্যবহারকারীদের একই ssh কী ভাগ করে নেওয়ার সম্ভাবনা খোলার বিষয়ে আপনার উদ্বেগ সেই দৃশ্যে ছবিতে আসে না।
ডেভিড এবো

@ ডেভিড এবোবো এটি ছবিতে নাও আসতে পারে, তবে এই উদ্বেগের কারণ (দুটি একই ব্যবহারকারীকে একই ssh কী ভাগ করে নেওয়ার) কেন ssh কী ভাগ না করা হয়েছে তার মূল কারণ।
ভোনসি

21
আমি ভীত আমি এখানে আপনার যুক্তি অনুসরণ না। আমি একটি খুব নির্দিষ্ট দৃশ্যের বিষয়ে জিজ্ঞাসা করছি (একাধিক প্রকল্পে একটি ডিপ্লয় কী ব্যবহার করুন) এবং এটি সম্ভব না হওয়ার জন্য আপনার যুক্তিটি একটি সম্পর্কযুক্ত পরিস্থিতি সামনে আনতে হবে (দুটি ব্যবহারকারী এসএসএস কীগুলি ভাগ করে নিয়েছেন)। ডিপ্লাই কী দৃশ্যের সাথে একচেটিয়াভাবে আঁকড়ানো, গিথুব এটির অনুমতি দেওয়ার নেতিবাচক কী হবে?
ডেভিড এবো

6
@ ডেভিড এবোবো হেল্প. github.com / আর্টিকেলস / ম্যানেজিং- ডিপ্লোয়- কিগুলি অনুসরণ করে , তিনটি পদ্ধতির (অ্যাকাউন্ট, মোতায়েন বা মেশিন অ্যাকাউন্ট) কোনওটিরই মধ্যে বলা হয়নি যে রেপোগুলি অ্যাক্সেসের জন্য একটি প্রাইভেট এসএসএইচ কী ভাগ করে নেওয়া উচিত। ডিপ্লয় কী দৃশ্যের সাথে একচেটিয়াভাবে আঁকড়ানো, যেহেতু এটি সার্ভারে একটি চাবিকাঠি , এর জন্য এটি বেশ কয়েকটি ভোপগুলিতে বৈধ হওয়ার অর্থ একাধিক ভান্ডারে একটি প্রাইভেট কী ভাগ (বা প্রতিলিপি) করা উচিত। এটি প্রমাণীকরণের দিকটি হ্রাস করে এবং কীটি আপোস করা থাকলে প্রকাশিত সংস্থার সংখ্যা বৃদ্ধি করে।
ভোনসি

8
ধন্যবাদ, এই পৃষ্ঠায় আকর্ষণীয় তথ্য আছে। আমি আপনার উত্তরটি দু'দিনের মধ্যে উত্তর হিসাবে চিহ্নিত করব যদি আমি অন্য কিছু না দেখি তবে সত্য বলতে সত্য আমি এখনও তর্ক দ্বারা নিশ্চিত নই। দুটি রেপোতে ডিপ্লয় কী ব্যবহার করা একই মেশিন কী ব্যবহারের চেয়ে দুর্বল নয় যা একই সংস্থাগুলির সেটগুলিতে অ্যাক্সেস পায়।
ডেভিড এবো

11

দুর্ভাগ্যক্রমে, এটি এমন একটি দৃশ্য যেখানে গিথুব একটি মূল জুটি এবং একটি অ্যাকাউন্ট বা প্রকল্পের মধ্যে পার্থক্যটির ভুল ব্যাখ্যা করে।

যেহেতু একটি কী জুটি প্রমাণীকরণ এবং অনুমোদনের জন্য ব্যবহৃত হয়, এটি কার্যকরভাবে একটি পরিচয়। গিথুব অ্যাকাউন্টগুলি অন্য একটি পরিচয়। গিথুব অ্যাকাউন্টগুলি কী-জোড়গুলির সাথে কার্যকরভাবে কার্যকরভাবে 1: N ম্যাপিংটি গিথব অ্যাকাউন্ট ভিত্তিক পরিচয় এবং কী জুটির পরিচয়ের মধ্যে স্থাপন করে।

বিপরীতে, গিথুব 1 টি প্রয়োগ করে: মূল জোড় ভিত্তিক পরিচয়গুলিতে প্রকল্পগুলির ম্যাপিং। আসল ওয়ার্ল্ড অ্যানালগ হ'ল প্রকল্পটিতে অ্যাক্সেস মঞ্জুরি দেওয়ার একটি দরজা রয়েছে যা অনেকগুলি লোক আনলক করতে পারে। তবে একবার তাদের কারও কাছে দরজার চাবি পেলে, তারা আর কোনও দরজার জন্য আর কোনও চাবি পায় না।

যদি কোনও কী আপত্তি হয়ে যায় তবে প্রায়শই পুনরায় ব্যবহার না করার বিষয়টি বিবেচনা করে from তবে এটি কেবল একটি ভাল প্রশাসনের নীতিনীতিগতভাবে একাধিকবার কী ব্যবহার করা থেকে বাঁচার পক্ষে এটি কোনও তাত্পর্যপূর্ণ নয় । কিছু দরজার জন্য কিছু কী রয়েছে যা কখনও পুনরায় ব্যবহার করা হয় না, ভাল, আবার এটি নীতির নীচে


কিছুটা আরও জটিল দৃষ্টিভঙ্গি হল মূল জোড়াকে ভূমিকা হিসাবে বর্ণনা করা । আপনি অনেকগুলি মূল জুড়ি অধিকারী করতে পারেন, এবং সেইজন্য অনেকগুলি ভূমিকা পালন করতে পারেন। ব্যক্তিগত কী আপনাকে ভূমিকার জন্য প্রমাণীকরণ করে।

প্রকল্পগুলিতে গিথুবের কী ম্যাপিং মোতায়েন রয়েছে যে কোনও ভূমিকা কখনই একের বেশি কাজকে অন্তর্ভুক্ত করতে পারে না। এটি খুব কমই বাস্তববাদী।

কোনটিই গিথুব অবশ্যই অনুমতি দেয় তা পরিবর্তন করে না।


4
হি। এটি গ্রহণযোগ্য উত্তরের চেয়ে আরও সঠিক হলে এটি কীভাবে হ্রাস পেয়ে যায় তা মজার এক ধরণের। আক্ষরিকভাবে এর মধ্যে এমন কোনও কিছুই নেই যা একাধিক ব্যবহারকারীর সাথে কী ভাগ করে নিতে বাধা দেয়।
জেনস ফিনখাইউসার

2

এর প্রভাবগুলি যুক্তিযুক্ত করতে আমার অনেক চিন্তাভাবনা লেগেছে এবং এই দৃশ্যটি নিয়ে এসেছি।

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

এটি কোনও উপকারের মতো শোনাতে পারে তবে আপনি মানবিক বিষয় বিবেচনা করার পরে এই বহু-সম্পর্কের বিষয়টি প্রকৃতপক্ষে সহজাতভাবে নিরাপত্তাহীন। এটি কারণ আপনি নিশ্চিতভাবে জানতে পারবেন না যে আপনি যদি প্রতিটি ভান্ডারটি পরীক্ষা না করেই সমস্ত অ্যাক্সেস সত্যই বাতিল করে দেন এবং প্রতিটি পাবলিক কীকে আপনি আলাদাভাবে যে ক্ষেত্রে ভুলে গেছেন সে ক্ষেত্রে আলাদাভাবে তুলনা করতে পারেন।

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


4
আমি এই ব্যাখ্যা দ্বারা বিশ্বাসী না। এক ব্যবহারকারীকে একাধিক ভাণ্ডার অ্যাক্সেস করার অনুমতি দেওয়া থেকে এটি কীভাবে মূলত পৃথক, যা স্পষ্টতই অনুমোদিত? আপনি যদি সেই ব্যবহারকারীকে আর বিশ্বাস না করেন তবে আপনাকে প্রতিটি রেপো থেকে তাদের সরানোর দরকার আছে।
ডেভিড এবো

@ ডেভিড: How is that fundamentally different from allowing one user to access multiple repositories, which is obviously allowedআপনি এই আরও ব্যাখ্যা করতে পারেন? আমার কেবলমাত্র বিকাশকারী অ্যাকাউন্ট রয়েছে এবং আমি দেখতে পাচ্ছি যে আপনি অ্যাকাউন্ট ব্যাপী অ্যাক্সেসের জন্য ssh কীগুলি (সমস্ত ভান্ডারগুলির জন্য একটি কী) বা স্বতন্ত্র মোতায়েন কীগুলি (প্রতিটি সংগ্রহস্থলের জন্য একটি কী) যুক্ত করতে পারেন। এটি এখনও এক-একাধিক বা এক-একের সম্পর্ক যেখানে উভয় ক্ষেত্রে "একটি" কী প্রত্যাহার করে "সমস্ত" অ্যাক্সেস প্রত্যাহার করে।
Zhro

আরও স্পষ্ট করার জন্য, দুর্ঘটনাক্রমে একাধিক টু-ওয়ান সম্পর্কের একটি চাবি অর্পণের কোনও সুযোগ নেই (যেখানে আমি বলতে পারি) যেখানে প্রত্যাহার হওয়ার পরে অ্যাক্সেস অন্য কোথাও উপস্থিত থাকতে পারে। এটি এই বিধিনিষেধের জন্য গিটহাবের অনুপ্রেরণা হিসাবে উপস্থিত বলে মনে হচ্ছে তবে আমি কেবল অনুমান করছি।
Zhro

আমি বিষয়গুলিতে যেভাবে দেখি, ডিপ্লয় কীগুলি কিছুটা 'বেনামে ব্যবহারকারী' এর মতো, যার কোনও সম্পূর্ণ অ্যাকাউন্ট নেই, তবে তবুও তারা একরকম পরিচয় উপস্থাপন করে। পার্থক্যটি হ'ল অ্যাকাউন্টের ক্ষেত্রে, আপনি অ্যাকাউন্টটিতে অ্যাক্সেস দেন , যা পরোক্ষভাবে account অ্যাকাউন্টের সমস্ত ssh কীগুলিতে অ্যাক্সেস দেয়। ডিপ্লয় কী ক্ষেত্রে থাকাকালীন আপনি অ্যাকাউন্ট বিমূর্তিটি এড়িয়ে যান এবং সরাসরি ssh কীটিতে অ্যাক্সেস দেন। তবে এর বাইরেও, আমি দেখতে চাই না যে সুরক্ষাটির প্রয়োজন আলাদা। যদি অ্যাকাউন্ট বা ডিপ্লয় কীটির মালিক খারাপ হয়ে যায় তবে আপনার এটিকে প্রতিটি রেপো থেকে সরানো দরকার।
ডেভিড এবো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.