আমি প্রতিবার কোনও প্রম্পটে আমার ব্যবহারকারী এবং পাসওয়ার্ড প্রবেশ না করে গিটএক্সটেনশনে একটি ধাক্কা ব্যবহার করতে এবং স্বয়ংক্রিয়ভাবে টানতে চাই।
তাহলে আমি কীভাবে আমার শংসাপত্রগুলি গিটে সংরক্ষণ করতে পারি?
আমি প্রতিবার কোনও প্রম্পটে আমার ব্যবহারকারী এবং পাসওয়ার্ড প্রবেশ না করে গিটএক্সটেনশনে একটি ধাক্কা ব্যবহার করতে এবং স্বয়ংক্রিয়ভাবে টানতে চাই।
তাহলে আমি কীভাবে আমার শংসাপত্রগুলি গিটে সংরক্ষণ করতে পারি?
উত্তর:
চালান
git config --global credential.helper store
তারপর
git pull
একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করুন এবং সেই বিবরণগুলি পরে স্মরণ করা হবে। শংসাপত্রগুলি ডিস্কের একটি ফাইলে "কেবলমাত্র ব্যবহারকারীদের পঠনযোগ্য / লেখার যোগ্য" এর ডিস্ক অনুমতি সহ সঞ্চিত থাকে তবে এখনও সরলখণ্ডিতে।
আপনি যদি পরে পাসওয়ার্ড পরিবর্তন করতে চান
git pull
ব্যর্থ হবে, কারণ পাসওয়ার্ডটি ভুল, গিটটি আপত্তিজনক ব্যবহারকারীর + পাসওয়ার্ডটি ~/.git-credentials
ফাইল থেকে সরিয়ে দেয় , তাই এখনই আবার চালনা করুন
git pull
একটি নতুন পাসওয়ার্ড সরবরাহ করতে যাতে এটি আগের মতো কাজ করে।
আপনি git config
গিটে শংসাপত্রের স্টোরেজ সক্ষম করতে এটি ব্যবহার করতে পারেন ।
git config --global credential.helper store
এই কমান্ডটি চালানোর সময়, প্রথমবার যখন আপনি দূরবর্তী সংগ্রহস্থল থেকে টানুন বা ধাক্কা দেবেন তখন আপনাকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড সম্পর্কে জিজ্ঞাসা করা হবে।
এরপরে, দূরবর্তী সংগ্রহস্থলের সাথে পরিণতিপূর্ণ যোগাযোগের জন্য আপনাকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করতে হবে না।
স্টোরেজ ফর্ম্যাট হ'ল একটি .git-credentials
ফাইল, প্লেইন টেক্সটে সঞ্চিত।
এছাড়াও, আপনি git config credential.helper
মেমরি ক্যাশে এর জন্য অন্যান্য সহায়কগুলিও ব্যবহার করতে পারেন :
git config credential.helper cache <timeout>
timeout parameter
শংসাপত্রগুলি কতক্ষণ স্মরণে রাখা হবে তা নির্ধারণ করে এটি একটি alচ্ছিক লাগে । সহায়কটি ব্যবহার করে, শংসাপত্রগুলি কখনই ডিস্কটিকে স্পর্শ করবে না এবং নির্দিষ্ট সময়সীমা শেষে মুছে যাবে। default
মান900 seconds (15 minutes).
সতর্কতা : আপনি যদি এই পদ্ধতিটি ব্যবহার করেন তবে আপনার গিট অ্যাকাউন্টের পাসওয়ার্ডগুলি plaintext
বিন্যাসে global .gitconfig file
, যেমন, লিনাক্সে সংরক্ষণ করা হবে/home/[username]/.gitconfig
যদি এটি আপনার কাছে অযাচিত হয় তবে ssh key
পরিবর্তে আপনার অ্যাকাউন্টগুলির জন্য একটি ব্যবহার করুন।
git config credential.helper cache
পাসওয়ার্ড একটি ফাইলে সংরক্ষণ করা হবে না, কেবল স্মৃতি সংরক্ষণ করা হয়। দেখুন: git-scm.com/docs/git-credential-cache
প্রস্তাবিত এবং সুরক্ষিত পদ্ধতি: এসএসএইচ
একটি এসএসএস গিথুব কী তৈরি করুন। যান github.com -> সেটিংস ->, SSH এবং -কি -> নতুন ssh কী। এখন আপনার কম্পিউটারে আপনার ব্যক্তিগত কী সংরক্ষণ করুন।
তারপর, যদি ব্যক্তিগত কী হিসেবে সংরক্ষিত হয় id_rsa মধ্যে ~ / .ssh / ডিরেক্টরির, আমরা এটা যেমন প্রমাণীকরণের জন্য যোগ করুন:
ssh-add -K ~/.ssh/id_rsa
আরও সুরক্ষিত পদ্ধতি: ক্যাচিং
আমরা কিছু সময়ের জন্য আমাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ড ক্যাশে গিট-শংসাপত্রের দোকান ব্যবহার করতে পারি। আপনার সিএলআইতে কেবল নিম্নলিখিতটি প্রবেশ করান (টার্মিনাল বা কমান্ড প্রম্পট):
git config --global credential.helper cache
আপনি টাইম আউট পিরিয়ড (সেকেন্ডে) সেট করতে পারেন:
git config --global credential.helper 'cache --timeout=3600'
এমনকি আরও কম নিরাপদ পদ্ধতি
গিট-শংসাপত্রের দোকানও ব্যবহার করা যেতে পারে তবে আপনার ডিস্কে প্লেইন ফাইলে পাসওয়ার্ডগুলি সংরক্ষণ করে:
git config credential.helper store
পুরানো উত্তর - দ্রুত এবং অনিরাপদ
এটি সরল পাঠ্যে আপনার পাসওয়ার্ড সংরক্ষণের একটি সুরক্ষিত পদ্ধতি। যদি কেউ আপনার কম্পিউটারের নিয়ন্ত্রণ অর্জন করে তবে আপনার পাসওয়ার্ড উন্মুক্ত হবে!
আপনি আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি এভাবে সেট করতে পারেন:
git config --global user.name "your username"
git config --global user.password "your password"
টার্মিনালে, নিম্নলিখিত লিখুন:
# Set git to use the credential memory cache
git config --global credential.helper cache
ডিফল্টরূপে, গিট আপনার পাসওয়ার্ডটি 15 মিনিটের জন্য ক্যাশে করবে।
ডিফল্ট পাসওয়ার্ড ক্যাশে টাইমআউট পরিবর্তন করতে, নিম্নলিখিত লিখুন:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
গিটহাব সহায়তা থেকে
cache
অংশটি প্রতিস্থাপন করুন store
। সুতরাং, পূর্ণ কমান্ড হবে: git config --global credential.helper store
। নোট করুন যে এটি আপনার পাসওয়ার্ডটি একটি খোলা-পাঠ্য ফাইলে সংরক্ষণ করবে (কোনও এনক্রিপশন ছাড়াই, তাই বলে)।
--timeout
প্যারামিটারের সর্বাধিক মান কত ?
আপনি সম্পাদনা করতে পারেন ~/.gitconfig
ফাইল সংরক্ষণ আপনার পরিচয়পত্র
sudo nano ~/.gitconfig
যা ইতিমধ্যে থাকা উচিত
[user]
email = your@email.com
user = gitUSER
এই ফাইলের নীচে আপনার যুক্ত করা উচিত।
[credential]
helper = store
আমি এই বিকল্পটির সুপারিশ করার কারণ হ'ল এটি বিশ্বব্যাপী এবং যদি কোনও মুহুর্তে আপনাকে বিকল্পটি সরিয়ে ফেলতে হবে তবে আপনাকে কোথায় যেতে হবে এবং কী পরিবর্তন করতে হবে তা আপনি জানেন।
আপনার ব্যক্তিগত কম্পিউটারে এই বিকল্পটি ব্যবহার করুন।
তারপরে আপনি যখন টানবেন | ক্লোন | আপনার গিট পাসওয়ার্ড লিখুন, সাধারণভাবে, পাসওয়ার্ডটি ~/.git-credentials
ফর্ম্যাটে সংরক্ষণ করা হবে
https://GITUSER:GITPASSWORD@DOMAIN.XXX
যেখানে DOMAIN.XXX গিথাব.কম থাকতে পারে BITBUCKET.ORG | অন্যান্য
দস্তাবেজগুলি দেখুন
কেবল আপনার শংসাপত্রগুলি এইভাবে url এ রাখুন:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
আপনি এটি এটি সংরক্ষণ করতে পারেন:
git remote add myrepo https://Userna...
... এটি ব্যবহারের উদাহরণ :
git push myrepo master
এখন যে হয় তালিকাভুক্ত URL alias লেখা:
git remote -v
... এবং তাদের মধ্যে একটি মুছে ফেলার আদেশ:
git remote rm myrepo
git@github.com:Username/myRepo.git
https
, না ssh
, তাই এর মতো সমাধান সেখানে কার্যকর হতে পারে। এছাড়াও খেয়াল করুন যে আপনি একটি ওউথ-টোকেন ব্যবহার করতে পারেন যা আপনার গিটহাব পাসওয়ার্ডের তুলনায় সামান্যতম সুরক্ষিত।
গ্লোবাল সেটিংয়ের জন্য, টার্মিনালটি খুলুন (যে কোনও জায়গা থেকে) নিম্নলিখিতটি চালান:
git config --global user.name "your username"
git config --global user.password "your password"
তারপরে, আপনার মেশিনে থাকা কোনও স্থানীয় গিট রেপো সেই তথ্য ব্যবহার করবে।
আপনি প্রতিটি রেপো পৃথকভাবে কনফিগার করতে পারেন:
নিম্নলিখিত চালান:
git config user.name "your username"
git config user.password "your password"
এটি কেবলমাত্র সেই ফোল্ডারটিকেই প্রভাবিত করে (কারণ আপনার কনফিগারেশনটি স্থানীয়।
--local
ট্যাগ যুক্ত হয় কিন্তু আবার কিছুই হয় না
আপনি কেবলমাত্র ফাইল সিস্টেমের অনুমতি দ্বারা সুরক্ষিত আপনার পাসওয়ার্ডগুলি ডিস্কে এনক্রিপ্ট না করে সঞ্চয় করতে গিট-শংসাপত্র-স্টোর ব্যবহার করতে পারেন।
উদাহরণ
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]
আপনি ফাইলটিতে সঞ্চিত শংসাপত্রগুলি পরীক্ষা করতে পারেন ~/.git-credentials
আরও তথ্যের জন্য গিট-শংসাপত্রের দোকানে যান - ডিস্কে শংসাপত্রগুলি সংরক্ষণ করতে সহায়ক
আপনি যদি ব্যবহারকারীর নাম / পাসওয়ার্ড প্রমাণীকরণের চেয়ে এসএসএইচ প্রমাণীকরণ ব্যবহার করেন তবে আপনি আরও সুরক্ষিত থাকবেন।
আপনি যদি ম্যাক ব্যবহার করছেন তবে এসএসএইচ ক্লায়েন্টের প্রমাণীকরণ ম্যাকোএস কীচেইনে একীভূত হবে। আপনি যখন একটি এসএসএইচ কী তৈরি করেন, আপনার টার্মিনালটিতে টাইপ করুন:
ssh-add -K ~/.ssh/id_rsa
এটি ম্যাকোস কীচেইনে এসএসএইচ প্রাইভেট কী যুক্ত করবে। গিটার ক্লায়েন্ট এসটিএস ব্যবহার করবে যখন এটি রিমোট সার্ভারের সাথে সংযুক্ত হয়। যতক্ষণ আপনি সার্ভারের সাথে আপনার ssh পাবলিক কীটি নিবন্ধভুক্ত করেছেন, আপনি ভাল থাকবেন be
SSH
। HTTP প্রমাণীকরণ ব্যবহার করে, যে কেউ শংসাপত্রগুলি চুরি করে তার কেবল অ্যাক্সেস থাকবে GitHub/GitLab
। এছাড়াও টোকেন একটি সীমিত জীবন থাকতে ডিজাইন করা হয়েছে।
কয়েক ডজন এসও পোস্ট, ব্লগ ইত্যাদির উপরে যাওয়ার পরে আমি প্রতিটি পদ্ধতি চেষ্টা করেছিলাম এবং এটিই আমি সামনে এসেছি। এটি সমস্ত কিছু জুড়ে।
এই সমস্ত উপায় এবং সরঞ্জামগুলি যার মাধ্যমে আপনি কোনও ইন্টারেক্টিভ পাসওয়ার্ড প্রম্পট ছাড়াই কোনও সংগ্রহস্থল ক্লোন করতে গিটটি সুরক্ষিতভাবে প্রমাণ করতে পারবেন ।
জাস্ট ওয়ার্কস চান? এই ম্যাজিক সিলভার বুলেট।
আপনার অ্যাক্সেস টোকন পান (চিত্রে শীটশীটের বিভাগটি দেখুন যদি তার জন্য গিথুব বা গিটার নির্দেশাবলীর প্রয়োজন হয়) এবং একটি পরিবেশ পরিবর্তনশীল (স্থানীয় দেব এবং স্থাপনার জন্য উভয়) এ সেট করুন:
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
গিটহাব জন্য, কপি এবং এই লাইন চালানো ধারণকৃত :
git config --global url."https://api:$MY_GIT_TOKEN@github.com/".insteadOf "https://github.com/"
git config --global url."https://ssh:$MY_GIT_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
git config --global url."https://git:$MY_GIT_TOKEN@github.com/".insteadOf "git@github.com:"
অভিনন্দন, এখন কোনও স্বয়ংক্রিয় সরঞ্জাম ক্লোনিং গিট সংগ্রহস্থল https ব্যবহার করে বা এসএসএল ইউআরএল স্টাইল ব্যবহার করে কোনও পাসওয়ার্ড প্রম্পট দ্বারা বাধা দেওয়া হবে না।
গিথুব ব্যবহার করছেন না?
অন্যান্য প্ল্যাটফর্মগুলির জন্য (গিটিয়া, গিথুব, বিটবকেট) কেবলমাত্র ইউআরএল পরিবর্তন করুন। ব্যবহারকারীর নাম পরিবর্তন করবেন না (যদিও নির্বিচারে, এগুলি স্বতন্ত্র কনফিগার এন্ট্রিগুলির জন্য প্রয়োজন)।
সঙ্গতি
এটি ম্যাকওএস, লিনাক্স, উইন্ডোজ (বাশ-এ), ডকার, সার্কেলসিআই, হেরোকু, আকারেসিস, ইত্যাদিতে স্থানীয়ভাবে কাজ করে
অধিক তথ্য
চিটশিটের ".gitconfig পরিবর্তেOf" বিভাগটি দেখুন।
নিরাপত্তা
চিটশিটের "সুরক্ষা" বিভাগটি দেখুন।
git config --global credential."https://somegithost.com".username MyUserName
, যা মধ্যে আপনার cheatsheet, কিন্তু না কোথাও এই উত্তর থ্রেড। সেই নির্দিষ্ট সমাধানটি ওপি-র প্রশ্নের উত্তর দেয় না, তবে এটি আমার উত্তর দিয়েছে, তাই ধন্যবাদ!
সেক্ষেত্রে নিম্নলিখিত কমান্ড লাইনটি ব্যবহার করে আপনার গিটহাব পাসওয়ার্ড এবং ব্যবহারকারীর নাম মনে রাখার জন্য গিটকে বলতে গিট শংসাপত্রের সাহায্যকারী দরকার:
git config --global credential.helper wincred
এবং আপনি যদি এসএসএইচ কী ব্যবহার করে রেপো ব্যবহার করছেন তবে প্রমাণীকরণের জন্য আপনার এসএসএইচ কী প্রয়োজন।
উপরের কোনও উত্তরই আমার পক্ষে কার্যকর হয়নি। আমি যতবার চাইছি নিম্নলিখিতগুলি পেতে থাকলাম fetch
বা pull
:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
ম্যাকদের জন্য
আমি আমার পাসফ্রেজ জিজ্ঞাসা করে এটি আটকাতে সক্ষম হয়েছি:
vi ~/.ssh/config
UseKeychain yes
:wq!
উইন্ডোজ জন্য
আমি এই স্ট্যাকেক্সচেঞ্জের তথ্য ব্যবহার করে এটি কাজ করতে সক্ষম হয়েছি: https://unix.stackexchange.com/a/12201/348665
~/.gitconfig
ফাইলটি সম্পাদনা করা ছাড়াও , আপনি যদি জিজ্ঞাসা করেন তবে আপনি এটি করতে পারেন:
git config --local --edit
অথবা
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
অথবা
git config --global user.name 'your username'
git config --global user.password 'your password'
আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড এমন কয়েকটি অক্ষর ব্যবহার করতে পারে যা আপনি ডাবল উদ্ধৃতি ব্যবহার করলে আপনার পাসওয়ার্ডটি ভেঙে যায়।
--local
বা এর --global
অর্থ কনফিগারেশন প্যারামগুলি প্রকল্পের জন্য বা ওএস ব্যবহারকারীর জন্য সংরক্ষিত আছে।
শুধু ব্যবহার
git config --global credential.helper store
এবং গিট টানুন , এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড চাইবে, এখন থেকে এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য কোনও প্রম্পট সরবরাহ করবে না এটি বিশদ সংরক্ষণ করবে
.git-credentials
আপনি যখন চালান তখন আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড (অ্যাক্সেস টোকেন) সংরক্ষণ করা হয় git config --global credential.helper store
, যা অন্য উত্তরগুলি সূচিত করে এবং তারপরে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড টাইপ করুন বা অ্যাক্সেস টোকেন:
https://${username_or_access_token}:${password_or_access_token}@github.com
সুতরাং, ব্যবহারকারীর নাম এবং পাসওয়ার্ড সংরক্ষণ করার জন্য (অ্যাক্সেস টোকেন):
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
এটি গিথব রোবোটের জন্য খুব দরকারী, উদাহরণস্বরূপ, বিভিন্ন শাখার জন্য নিয়ম রেখে একই ডকারের সংগ্রহস্থলে চেইন স্বয়ংক্রিয় বিল্ডগুলি সমাধান করতে এবং তারপরে post_push
ডকার হাবের ভিতরে এটির মাধ্যমে এটি চালিত করে ট্রিগার করতে পারেন ।
এর উদাহরণ এখানে স্ট্যাকওভারফ্লোতে দেখা যায় ।
গিট শংসাপত্রগুলি ক্যাশে করার একটি দ্রুত উপায়:
git config credential.helper 'cache' --timeout=10800
সুন্দর এবং নিরাপদ
সময়সীমা সেকেন্ডে হয়।
থ্রেডটি পুরোপুরি পড়ার পরে এবং এই প্রশ্নের বেশিরভাগ উত্তর নিয়ে পরীক্ষার পরে, আমি শেষ পর্যন্ত আমার জন্য কার্যকর পদ্ধতিটি খুঁজে পেয়েছি। জটিল ব্যবহারের ক্ষেত্রে যদি কারও কারও কারও কারও কারওর সাথে যোগাযোগ করতে হয় তবে আমি এটি ভাগ করে নিতে চাই তবে আমি পুরো থ্রেড এবং গিটারড্রেনডিয়ালস , গিটারড্রেনটিভালস-স্টোর ইত্যাদি ম্যান পেজগুলিতে যেতে চাই না I
আমি প্রস্তাব দিলে নীচের পদ্ধতিটি সন্ধান করুন যদি আপনাকে (আমার মত) বেশ কয়েকটি পৃথক ব্যবহারকারীর নাম / পাসওয়ার্ড সংমিশ্রণ ব্যবহার করে বেশ কয়েকটি সরবরাহকারীর (গিটল্যাব, গিটহাব, বিটবকেট, ইত্যাদি) বিভিন্ন সংগ্রহস্থল নিয়ে কাজ করতে হয়। পরিবর্তে যদি আপনার সাথে কাজ করার জন্য কেবল একটি একক অ্যাকাউন্ট থাকে তবে আপনি আগের উত্তরগুলিতে খুব ভালভাবে ব্যাখ্যা করা git config --global credential.helper store
বা git config --global user.name "your username"
ইত্যাদি সমাধানগুলি নিয়োগ করা থেকে ভাল better
আমার সমাধান:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
দ্রষ্টব্য : এই আদেশটি আপনার হোম ডিরেক্টরিতে ".git_repo_credentials" নামে একটি নতুন ফাইল তৈরি করে, যেখানে গিট আপনার শংসাপত্রগুলি সংরক্ষণ করে। আপনি যদি কোনও ফাইলের নাম নির্দিষ্ট না করেন তবে গিট ডিফল্ট ".git_credentials" ব্যবহার করে। এক্ষেত্রে কেবল নিম্নলিখিত আদেশটি জারি করলে তা করা যাবে:
> git config credential.helper store
git config credential.*.username my_user_name
দ্রষ্টব্য : "*" ব্যবহার করা সাধারণত ঠিক থাকে যদি আপনার সংগ্রহস্থলগুলি একই সরবরাহকারীর (যেমন গিটল্যাব) থেকে থাকে। পরিবর্তে যদি আপনার ভান্ডারগুলি বিভিন্ন সরবরাহকারী দ্বারা হোস্ট করা হয় তবে আমি নীচের উদাহরণের মতো (গিটল্যাবের জন্য) প্রতিটি স্টোরের সরবরাহকারীর জন্য স্পষ্টভাবে লিঙ্কটি সেট করার পরামর্শ দিচ্ছি:
git config credential.https://gitlab.com.username my_user_name
এই মুহুর্তে আপনি যদি আপনার শংসাপত্রগুলির প্রয়োজনের জন্য একটি কমান্ড জারি করেন (উদাহরণস্বরূপ git pull
) আপনাকে "আমার_উজার_নাম" এর সাথে সম্পর্কিত পাসওয়ার্ড জিজ্ঞাসা করা হবে। এটি কেবল একবারের জন্য প্রয়োজনীয় কারণ গিট শংসাপত্রগুলি ".git_repo_credentials" এ সঞ্চয় করে এবং পরবর্তী অ্যাকসেসগুলিতে স্বয়ংক্রিয়ভাবে একই ডেটা ব্যবহার করে।
লিনাক্স উবুন্টু সম্পর্কে রাইফ্রোলের মন্তব্য থেকে, এই উত্তরটি , এখানে উবুন্টুতে রয়েছে:
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
অন্য কিছু ডিস্ট্রো বাইনারি সরবরাহ করে যাতে আপনার এটি তৈরি করতে হবে না।
ওএস এক্স-এ এটি সাধারণত "অক্সকিচেইন" এর একটি ডিফল্ট মডিউল দিয়ে "নির্মিত" হয় যাতে আপনি এটি বিনামূল্যে পান।
অফিসিয়াল গিট ডকুমেন্টেশন চেক করুন:
যদি আপনি রিমোটগুলিতে সংযোগের জন্য এসএসএইচ পরিবহন ব্যবহার করেন তবে আপনার পক্ষে পাসফ্রেজ ছাড়াই একটি কী থাকা সম্ভব, যা আপনাকে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড টাইপ না করে নিরাপদে ডেটা স্থানান্তর করতে দেয়। তবে, এইচটিটিপি প্রোটোকল দিয়ে এটি সম্ভব নয় - প্রতিটি সংযোগের একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রয়োজন। এটি দ্বি-গুণক প্রমাণীকরণ সহ সিস্টেমগুলির জন্য আরও শক্ত হয়ে ওঠে, যেখানে আপনি পাসওয়ার্ডের জন্য টোকেনটি এলোমেলোভাবে উত্পন্ন এবং অপ্রকাশনীয় able
ভাগ্যক্রমে, গিটের একটি শংসাপত্র সিস্টেম রয়েছে যা এটির সাথে সহায়তা করতে পারে। গিটের বাক্সে কয়েকটি বিকল্প সরবরাহ করা হয়েছে:
ডিফল্ট মোটেও ক্যাশে হয় না। প্রতিটি সংযোগ আপনাকে আপনার ব্যবহারকারী নাম এবং পাসওয়ার্ডের জন্য অনুরোধ করবে।
"ক্যাশে" মোড একটি নির্দিষ্ট সময়ের জন্য স্মৃতিতে শংসাপত্র রাখে। কোনও পাসওয়ার্ডই কখনও ডিস্কে সংরক্ষণ করা হয় না এবং 15 মিনিটের পরে সেগুলি ক্যাশে থেকে মুছে ফেলা হয়।
"স্টোর" মোড শংসাপত্রগুলি ডিস্কের একটি সরল-পাঠ্য ফাইলগুলিতে সংরক্ষণ করে এবং সেগুলির মেয়াদ কখনই শেষ হয় না। এর অর্থ হ'ল যতক্ষণ না আপনি গিট হোস্টের জন্য আপনার পাসওয়ার্ড পরিবর্তন করেন, আপনাকে আর আপনার শংসাপত্রগুলি টাইপ করতে হবে না। এই পদ্ধতির খারাপ দিকটি হ'ল আপনার পাসওয়ার্ডগুলি আপনার বাড়ির ডিরেক্টরিতে একটি সরল ফাইলে ক্লিয়ারটেক্সটে সংরক্ষণ করা হয়।
আপনি যদি ম্যাক ব্যবহার করছেন তবে গিটটি একটি "অক্সকিচেইন" মোড নিয়ে আসে যা আপনার সিস্টেম অ্যাকাউন্টে সংযুক্ত সুরক্ষিত কীচেইনে শংসাপত্রগুলি ক্যাশে করে। এই পদ্ধতিটি শংসাপত্রগুলি ডিস্কে সঞ্চয় করে এবং এগুলির কখনই মেয়াদ শেষ হয় না তবে তারা একই সিস্টেমের সাথে এনক্রিপ্ট করা হয় যা এইচটিটিপিএস শংসাপত্র এবং সাফারি অটো-ফিলগুলি সঞ্চয় করে।
আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আপনি "উইন্ডোজের জন্য গিট শংসাপত্র ব্যবস্থাপক" নামে একটি সহায়ক ইনস্টল করতে পারেন। এটি উপরে বর্ণিত "অস্কেচেইন" সহায়কটির মতো, তবে সংবেদনশীল তথ্য নিয়ন্ত্রণ করতে উইন্ডোজ শংসাপত্রের স্টোর ব্যবহার করে। এটি https://github.com/Mic Microsoft/Git-Credential-Manager- for- উইন্ডোতে পাওয়া যাবে ।
গিট কনফিগারেশন মান সেট করে আপনি এই পদ্ধতিগুলির মধ্যে একটি চয়ন করতে পারেন:
$ git config --global credential.helper cache
$ git config --global credential.helper store