এসএসএইচ গ্রুপ পঠনযোগ্য অনুমতি সহ একটি কী ব্যবহারের অনুমতি দেয় না


9

আমার কাছে একটি বিকাশ গিট সার্ভার রয়েছে যা liveব্রাঞ্চে ঠেলে দেওয়ার সাথে সাথে একটি লাইভ সার্ভারে স্থাপন করা হয়। প্রত্যেক ব্যবহারকারীর নিজস্ব লগইন থাকে এবং সেইজন্য post-receiveহুক যা সরাসরি স্থাপন করে তাদের নিজস্ব ব্যবহারকারীর অধীনে চালিত হয়।

কারণ আমি দূরবর্তী লাইভ সার্ভার আমি কী একটি সেট আপ করেছেন ব্যবহারকারীদের অনুমোদিত কী হিসেবে সার্বজনিক কী বজায় রাখার জন্য যে 'Git সিস্টেমে এর অন্তর্গত দূরবর্তী লাইভ সার্ভার যোগ আছে চাই না (ইন post-receiveহুক আমি ব্যবহার করছি বিকল্পের $GIT_SSHসাথে প্রাইভেট কী সেট করতে -i)।


আমার সমস্যাটি হ'ল যেহেতু সমস্ত ব্যবহারকারী বাঁচার জন্য স্থাপন করতে চান, গিট সিস্টেমের ব্যক্তিগত কীটি কমপক্ষে গ্রুপ পঠনযোগ্য হতে হবে এবং এসএসএইচ সত্যই এটি পছন্দ করে না।

এখানে ত্রুটির একটি নমুনা দেওয়া হয়েছে:

XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa

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

উত্তর:


5

এখানে একটি দুর্দান্ত সহজ এবং সুরক্ষিত উপায়।

Ssh স্থানান্তরের জন্য একটি নতুন ব্যবহারকারী তৈরি করুন, আমি এটিকে গিট-সিঙ্ক বলব। গিট সংগ্রহস্থলের জন্য গ্রুপ সদস্যতার সাথে সার্ভারে অনুরূপ ব্যবহারকারী তৈরি করুন। সিঙ্ক-ব্যবহারকারীর জন্য সর্বজনীন কী যুক্ত করুন যে ব্যবহারকারীদের_ক্রয় 2 ফাইলটিতে অনুমোদিত। আমি ধরে নিচ্ছি গিট ব্যবহারকারীরা সমস্ত গিট গ্রুপের সদস্য। গিট-সিঙ্ক ব্যবহারকারীও এই গ্রুপের সদস্য কিনা তা নিশ্চিত করুন।

একটি লাইন অন্তর্ভুক্ত করতে এখন আপনার / ইত্যাদি / sudoers ফাইল সম্পাদনা করুন:

%gitgroup ALL=(git-sync) NOPASSWD: /usr/bin/git

এটি গিটগ্রুপ গ্রুপের যে কোনও সদস্যকে পাসওয়ার্ড ছাড়াই গিট-সিঙ্ক হিসাবে / usr / bin / বিট কমান্ড চালানোর অনুমতি দেবে।

আপনার পোস্ট-রিসিভ হুক এ এখন এমন কিছু রাখুন:

sudo -u git-sync /usr/bin/git push origin

আমি যা খুঁজছিলাম তার চেয়ে এটি ভাল, ধন্যবাদ!
জেসি রস

11

আপনি গ্রুপ পঠনযোগ্য পরিচয় ফাইলগুলি ব্যবহার করতে পারেন , আপনি কীটির মালিক হবেন না। সুতরাং, কেবল পরিচয় ফাইলটি মালিকানাধীন হিসাবে সেট করুন, উদাহরণস্বরূপ, রুট ব্যবহারকারী এবং তারপরে আপনার সমস্ত গিট রিপোজিটরি ব্যবহারকারীর যেতে প্রস্তুত set

এর একটি দুর্দান্ত সুবিধা হ'ল আপনার সুডোর দরকার নেই - সমাধানটি আরও সহজ হবে।

মনে রাখবেন যে আপনি যদি আপনার গিট রেপোতে চাপ দেওয়ার জন্য রুট ব্যবহার করেন তবে এটি আবার আসল সমস্যার মধ্যে চলে যাবে।


2
এটি দুর্দান্ত, এবং "এটি করবেন না" উত্তরের চেয়ে আরও ভাল। ধন্যবাদ!
ইয়ান ম্যাকগোয়ান

2
Permissions 0640 for 'id_rsa' are too open.

ব্যক্তিগত কী অবশ্যই ব্যক্তিগত থাকতে হবে। আপনার কাউকে এটি পড়ার অনুমতি দেওয়া উচিত নয়।

কারণ আমি দূরবর্তী লাইভ সার্ভার আমি কী একটি সেট আপ করেছেন ব্যবহারকারীদের অনুমোদিত কী হিসেবে সার্বজনিক কী বজায় রাখার জন্য যে 'Git সিস্টেমে এর অন্তর্গত দূরবর্তী লাইভ সার্ভার যোগ আছে চাই না (ইন post-receiveহুক আমি ব্যবহার করছি বিকল্পের $GIT_SSHসাথে প্রাইভেট কী সেট করতে -i)।

  1. ডেভ থেকে প্রোডাকশন সার্ভারে এসএসএস করতে একটি কী জুটি সেটআপ করুন
  2. মধ্যে post-receiveহুক স্ক্রিপ্ট, ভালো কিছু চেষ্টা করুন:

    if [ "live" == "$branch" ]; then
        ssh -t user@prod "git --work-tree=... --git-dir=... checkout -f"
    fi
    

আমি কীভাবে "দেব থেকে প্রযোজনা সার্ভারে এসএসএস করতে একটি কী জুড়ি সেটআপ করতে পারি", এটিই আমার সমস্যা হচ্ছে। আমার ইতিমধ্যে 2 জায়গা আছে।
জেসি রস

1
দেব উপর: ssh-keygen, ssh-copy-id user@prod। প্রোডে: chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys
কোয়ান্টা

1
সমস্যাটি হ'ল একাধিক ব্যবহারকারী রয়েছেন, সুতরাং সার্ভারে বিদ্যমান প্রতিটি প্রকল্পের দ্বারা সময় সম্পাদনা করতে চায় এমন প্রতিটি ব্যবহারকারীর জন্য আমাকে পুনরাবৃত্তি করতে হবে।
জেসি রস

না। আপনাকে কেবলমাত্র দুটি আরও ব্যবহারকারী সেটআপ করতে হবে: একটি দেব থেকে প্রোডের দিকে প্রযোজন এবং অন্যটি git checkout...(প্রোডে) চালানোর জন্য ।
কোয়ান্টা

post-receiveহুক (DEV মেশিন), তাই তারা সব বিভিন্ন চাবি থাকবে যে বদল আনলে (তাই ব্যবহারকারীদেরকে অনুমতি অধীন) ঠেলাঠেলি হয় ব্যবহারকারী দ্বারা চালানো হয় আমি সাহায্য যা ব্যবহারকারী এটিকে হতে হবে না। post-receiveকার্যত দুটি ভিন্ন সার্ভারে দুটি হুক রয়েছে।
জেসি রস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.