TLDR; গিট 1.8.3+ সহ একটি এনক্রিপ্ট করা নেটআরসিআরসি ফাইল ব্যবহার করুন ।
উইন্ডোজের ~/.netrc
(ইউনিক্স) বা %HOME%/_netrc
(নোটটি নোট ) দিয়ে গিট সংগ্রহস্থল এইচটিটিপিএস URL- এর জন্য একটি পাসওয়ার্ড সংরক্ষণ করা সম্ভব_
তবে : এই ফাইলটি আপনার পাসওয়ার্ডটি সরল পাঠ্যে সংরক্ষণ করবে।
সমাধান : জিপিজি (জিএনইউ প্রাইভেসি গার্ড) দিয়ে সেই ফাইলটি এনক্রিপ্ট করুন এবং প্রতিবার পাসওয়ার্ডের প্রয়োজন হলে এটি গিট ডিক্রিপ্ট করুন ( push
/ pull
/ fetch
/ clone
ক্রিয়াকলাপের জন্য)।
দ্রষ্টব্য: গিট 2.18 (Q2 2018) এর সাথে, আপনি এখন এনক্রিপ্ট করা .netrc
ফাইলটি ডিক্রিপ্ট করতে ব্যবহৃত জিপিজি কাস্টমাইজ করতে পারেন ।
প্রতিশ্রুতিবদ্ধ 786ef50 দেখুন , প্রতিশ্রুতিবদ্ধ f07eeed (12 মে 2018) লুই মার্সাসানো (``) দ্বারা ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 017b7c5 , 30 মে 2018)
git-credential-netrc
: gpg
বিকল্প গ্রহণ করুন
git-credential-netrc
gpg
gpg.pogram বিকল্পটি নির্বিশেষে ' ' দিয়ে ডিক্রিপ্ট করার জন্য হার্ডকোড ছিল ।
এটি ডিবিয়ানের মতো বিতরণে একটি সমস্যা যা আধুনিক GnuPG কে অন্যরকম কল করে, ' gpg2
' এর মতো
উইন্ডোজের জন্য ধাপে ধাপে নির্দেশাবলী
উইন্ডোজ সহ:
(গিটটির gpg.exe
বিতরণে একটি রয়েছে , তবে একটি সম্পূর্ণ জিপিজি ইনস্টলেশন ব্যবহারের সাথে একটি অন্তর্ভুক্ত রয়েছে gpg-agent.exe
যা আপনার জিপিজি কী সম্পর্কিত আপনার পাসফ্রেজ মুখস্থ করবে))
(' copy
' কমান্ডটি নোট করুন : কমান্ডটি কার্যকর করতে গিটকে বাশ স্ক্রিপ্টের প্রয়োজন হবে ' gpg
' যেহেতু gpg4win-vanilla-2
আসে gpg2.exe
, আপনাকে এটির নকল করতে হবে))
(এই কীটিতে একটি পাসফ্রেজ অবশ্যই রাখবেন তা নিশ্চিত করুন))
এই চাবি বিশ্বাস করুন
আপনার মধ্যে একটি ডিরেক্টরিতে শংসাপত্র সহায়ক সহায়ক স্ক্রিপ্ট ইনস্টল করুন %PATH%
:
cd c:\a\fodler\in\your\path
curl -o c:\prgs\bin\git-credential-netrc https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl
(সাবধান: স্ক্রিপ্টটির নাম Git 2.25.x / 2.26 এ নামকরণ করা হয়েছে, নীচে দেখুন)
(হ্যাঁ, এটি বাশ স্ক্রিপ্ট, তবে এটি উইন্ডোতে কাজ করবে যেহেতু এটি গিট ডেকে আনবে))
(আপনি যে URL টি ব্যবহার করবেন তার উপর নির্ভর করে ' protocol
' অংশ: ' http
' বা ' https
' ভুলবেন না ))
(আপনি এখন করতে পারে মুছতে_netrc
শুধুমাত্র পালন ফাইল, _netrc.gpg
এনক্রিপ্ট করা এক।)
(' /
' নোট করুন : C:\path\to...
মোটেও কাজ করবে না)) ( -v -d
কী চলছে তা দেখতে আপনি প্রথমে ব্যবহার করতে পারেন ))
এখন থেকে, HTTP (এস) ইউআরএল ব্যবহার করে যে কোনও গিট কমান্ড যার অনুমোদনের প্রয়োজন রয়েছে সেই _netrc.gpg
ফাইলটি ডিক্রিপ্ট করবে এবং আপনি যে সার্ভারের সাথে যোগাযোগ করছেন তার সাথে যুক্ত লগইন / পাসওয়ার্ড ব্যবহার করবে। প্রথমবার, জিপিজি আপনাকে ফাইলটি ডিক্রিপ্ট করার জন্য আপনার জিপিজি কীটির পাসফ্রেজের জন্য জিজ্ঞাসা করবে। অন্যান্য সময়, প্রথম জিপিজি কল দ্বারা স্বয়ংক্রিয়ভাবে চালু হওয়া জিপিজি-এজেন্ট আপনার জন্য সেই পাসফ্রেজ সরবরাহ করবে।
এইভাবে, আপনি একটি ফাইলে বেশ কয়েকটি URL / লগইন / পাসওয়ার্ড মুখস্থ করতে পারেন এবং এটি আপনার ডিস্কে এনক্রিপ্ট করে সংরক্ষণ করতে পারেন।
আমি এটি "ক্যাশে" সহায়তাকারীর চেয়ে আরও সুবিধাজনক বলে মনে করি যেখানে আপনার প্রতিটি প্রত্যন্ত পরিষেবাসমূহের জন্য আলাদা পাসওয়ার্ড মনে রাখতে এবং টাইপ করতে হবে (মেমরির ক্যাশেড পাসওয়ার্ডের জন্য) said
গিট 2.26 (কিউ 12020) দিয়ে, ব্যবহারের জন্য নমুনা শংসাপত্র সহায়কটি .netrc
বাক্সের বাইরে কাজ করার জন্য আপডেট করা হয়েছে। দেখুন প্যাচ / আলোচনা ।
কমিট 6579d93 দেখুন , কমেন্ট 1c78c78 (20 ডিসেম্বর 2019) ডেন্টন লিউDenton-L
দ্বারা ( ) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 1fd27f8 , 25 ডিসেম্বর 2019)
সাইন-অফ-বাই: ডেন্টন লিউ
পার্ল দোভাষীর জন্য শেবাং পথটি git-credential-netrc
হার্ডকোড করা হয়েছিল।
যাইহোক, কিছু ব্যবহারকারীর এটি অন্য কোনও জায়গায় অবস্থিত থাকতে পারে এবং সুতরাং, স্ক্রিপ্টটি ম্যানুয়ালি সম্পাদনা করতে হত।
.perl
এটিকে টেমপ্লেট হিসাবে চিহ্নিত করতে এবং উত্পন্ন সংস্করণটিকে উপেক্ষা করার জন্য স্ক্রিপ্টটিতে একটি উপসর্গ যুক্ত করুন ।
বৃদ্ধি Makefile
যাতে তা উত্পন্ন git-credential-netrc
থেকে git-credential-netrc.perl
, শুধু অন্যান্য পার্ল স্ক্রিপ্ট মত।
মেকফিল রেসিপিগুলি নির্লজ্জভাবে চুরি হয়ে গেছে contrib/mw-to-git/Makefile
।
এবং:
2.26 (Q1 2020) দিয়ে .netrc ব্যবহারের জন্য নমুনা শংসাপত্র সহায়কটি বাক্সের বাইরে কাজ করার জন্য আপডেট করা হয়েছে।
কমিট 6579d93 দেখুন , কমেন্ট 1c78c78 (20 ডিসেম্বর 2019) ডেন্টন লিউDenton-L
দ্বারা ( ) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 1fd27f8 , 25 ডিসেম্বর 2019)
সাইন-অফ-বাই: ডেন্টন লিউ
বর্তমানে, git-credential-netrc
গিট সংগ্রহস্থলের বাইরে কাজ করে না। এটি নিম্নলিখিত ত্রুটির সাথে ব্যর্থ:
fatal: Not a git repository: . at /usr/share/perl5/Git.pm line 214.
যদিও কোনও সংগ্রহস্থলের মধ্যে থাকার দরকার নেই তার আসল কারণ নেই। শংসাপত্রের সহায়তাকারীদেরও সংগ্রহস্থলের বাইরে ঠিক কাজ করতে সক্ষম হওয়া উচিত।
এর স্ব-স্ব সংস্করণটি কল করুন config()
যাতে git-credential-netrc
আর কোনও সংগ্রহস্থলের মধ্যে চালানো দরকার না।
জেফ কিং ( peff
) যোগ করেছেন:
আমি ধরে নিচ্ছি আপনি একটি জিপিজি-এনক্রিপ্টড ব্যবহার করছেন netrc
(যদি না হয় তবে আপনার সম্ভবত ব্যবহার করা উচিত credential-store
)।
"কেবলমাত্র পঠনযোগ্য" পাসওয়ার্ড অ্যাক্সেসের জন্য, আমি pass
কনফিগারেশনের সাথে এর সংমিশ্রণটি কিছুটা ভাল দেখতে পাই :
[credential "https://github.com"]
username = peff
helper = "!f() { test $1 = get && echo password=`pass github/oauth`; }; f"