authentication - গিট ধাক্কা ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রয়োজন




github git-push (14)

আমি আমার পিসি থেকে আমার গীথুব অ্যাকাউন্ট থেকে একটি জিট রিপোজিটরি ক্লোন করেছি।

আমি আমার পিসি এবং ল্যাপটপ উভয় সঙ্গে কাজ করতে চান, কিন্তু এক Github অ্যাকাউন্ট দিয়ে।

যখন আমি আমার পিসি ব্যবহার করে push বা push করার চেষ্টা করি, তখন ব্যবহারকারীর নাম ও পাসওয়ার্ড প্রয়োজন, কিন্তু ল্যাপটপ ব্যবহার করার সময় না!

আমি উৎপত্তি সঙ্গে প্রতিবার যখনই আমার ব্যবহারকারী নাম এবং পাসওয়ার্ড টাইপ করতে চাই না। আমি কি এখানে অনুপস্থিত?


Git repositories সঙ্গে স্থায়ীভাবে প্রমাণীকরণ,

প্রমাণপত্রাদি ক্যাশিং সক্ষম করতে নিম্নলিখিত কমান্ডটি চালান:

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>

ব্যবহার ক্যাশিং মেয়াদ উত্তীর্ণ করা উচিত,

git config --global credential.helper 'cache --timeout 7200'

প্রমাণপত্রাদি ক্যাশিং সক্ষম করার পরে, এটি 7200 সেকেন্ড (2 ঘন্টা) জন্য ক্যাশে করা হবে।


অনেক ব্যবহারকারী বলেছেন যেহেতু, আপনাকে কেবল আপনার জিটি রিপোসিটোরি URL টি https থেকে SSH এ পরিবর্তন করতে হবে।

আপনি যদি আপনার মেশিনে একটি SSH কী তৈরি না করে থাকেন তবে আপনার এটি করতে হবে।

ঠিক যেমন একটি অতিরিক্ত তথ্য, এই পরিবর্তন করার পরেও আমি এখনও একই ত্রুটি পাচ্ছিলাম: অনুমতি প্রত্যাখ্যাত।

আমার ক্ষেত্রে, সমস্যা ছিল যে আমি ngh কমান্ডটি চালানোর জন্য উইন্ডোজ শেল ব্যবহার করছিলাম; যেহেতু এই কমান্ডটি এসএসএইচ ফ্রেজটি অনুরোধ করার জন্য একটি প্রম্পট খুলবে এবং উইন্ডোজ শেল এই ধরণের প্রম্পট খুলবে না, প্রমাণীকরণটি কেবল ব্যর্থ হয়েছে।

সুতরাং, আমাকে শুধু গিট শেলটি খুলতে এবং এনএইচ কমান্ডটি চালাতে হয়েছিল, এসএসএইচ ফ্রেজটি প্রতিবার যখন এটির জন্য অনুরোধ করা হয়েছিল এবং "ভয়েলা" বলা হয়েছিল ... এটি ঠিক কাজ করেছে!


আপনি Git এ আপনার GitHub পাসওয়ার্ড ক্যাশ করতে পারেন:

শুধু জিথব এর অফিসিয়াল ডকুমেন্টেশন থেকে নির্দেশাবলী অনুসরণ করুন।

উপরের লিঙ্ক থেকে নির্দেশাবলী অনুসরণ করার পরে, আপনি আপনার ব্যবহারকারী নাম / পাসওয়ার্ড টাইপ না করে আপনার রেপো থেকে / প্রতি / টানতে সক্ষম হবেন।


আপনি মূলত দুটি অপশন আছে।

আপনি যদি উভয় মেশিনে একই ব্যবহারকারী ব্যবহার করেন তবে আপনাকে আপনার পিসিতে .pub কী অনুলিপি করতে হবে, তাই জিথাব জানে যে আপনি একই ব্যবহারকারী।

আপনি যদি আপনার পিসির জন্য একটি নতুন .pub ফাইল তৈরি করে থাকেন এবং মেশিনগুলিকে বিভিন্ন ব্যবহারকারী হিসাবে চিকিত্সা করতে চান তবে আপনাকে জিথাব ওয়েবসাইটে নতুন .pub ফাইল নিবন্ধন করতে হবে।

এটি এখনও কাজ করে না তবে এটি ssh সঠিকভাবে কনফিগার করা হয় না এবং ssh আপনার কীগুলির অবস্থান খুঁজে পেতে ব্যর্থ হয়। চেষ্টা

ssh -vv [email protected]

SSH ব্যর্থ কেন আরো তথ্য পেতে।


আপনি যদি উইন্ডোজ (এবং আপনি https থেকে ssh এ স্যুইচ করতে না চান তবে) এর অধীনে git (ex। Git bash) ব্যবহার করছেন

আপনি https://github.com/Microsoft/Git-Credential-Manager-for-Windows ব্যবহার করতে পারেন

এই অ্যাপ্লিকেশনটি আপনার জন্য ব্যবহারকারী নাম এবং পাসওয়ার্ড রাখবে ...


আমার জন্য কি কাজ। .git/config এবং ব্যবহার করতে ছিল

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

এটি বলার অপেক্ষা রাখে না যে এটি আপনার পাসওয়ার্ড সংরক্ষণের একটি অনিরাপদ উপায় কিন্তু পরিবেশ / ক্ষেত্রে এমন সমস্যা রয়েছে যেখানে এটি কোনও সমস্যা হতে পারে না।


আমি শুধু একই সমস্যার মধ্যে এসেছি, এবং পাওয়া সবচেয়ে সহজ সমাধানটি HTTPS এর পরিবর্তে SSH URL ব্যবহার করা হল:

ssh://[email protected]/username/repo.git

এবং এই না:

https://github.com/username/repo.git

আপনি এখন username এবং password পরিবর্তে শুধুমাত্র SSH Key দিয়ে যাচাই করতে পারেন।


উইন্ডোজ git ব্যবহারকারীদের জন্য, git config --global credential.helper store করার পরে - git config --global credential.helper store , এটি এখনও পাসওয়ার্ডের জন্য অনুরোধ করলে, আপনি কনফিগার করা হয় যেখানে ভাল চেক করুন। এই কমান্ড ব্যবহার করে

git config --list --show-origin

আমার ক্ষেত্রে, ম্যানুয়ালি কনফিগারেশন ফাইলটি সি: \ Program Files \ Git \ mingw64 \ ইত্যাদি \ gitconfig সম্পাদনা করুন, নিম্নলিখিত লেখা যুক্ত করে, এটি কাজ করে।

[credential] helper = store


এই আমার জন্য কি কাজ করেছে:

git remote set-url origin https://[email protected]/username/reponame.git

উদাহরণ:

git remote set-url origin https://[email protected]/jsmith/master.git

একটি সাধারণ ভুল এসএসএইচ পরিবর্তে ডিফল্ট (HTTPS) ব্যবহার করে ক্লোন করা হয়। আপনি আপনার রিপোজিটরিতে গিয়ে "ক্লোন বা ডাউনলোড করুন" ক্লিক করে URL ক্ষেত্রের উপরে "SSH ব্যবহার করুন" বোতামটি ক্লিক করে এবং আপনার উত্সের দূরবর্তী URL টি আপডেট করে এটিকে ঠিক করতে পারেন:

git remote set-url origin [email protected]:username/repo.git

এটি GitHub এ নথিভুক্ত করা হয়েছে: HTTPS থেকে SSH এ রিমোট URL গুলি স্যুইচ করা


এসএসএইচ-তে পরিবর্তন করার পাশাপাশি আপনি যদি স্পষ্ট টেক্সটে আপনার পাসওয়ার্ড না রাখেন তবে এইচটিটিপিএস ব্যবহার করতে পারেন। আপনার ~/.netrc রাখুন এবং এটি আপনার ব্যবহারকারীর নাম / পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে না (অন্তত লিনাক্স এবং ম্যাকে):

machine github.com
       login <user>
       password <password>

সংযোজন (ভনক এর দ্বিতীয় মন্তব্যটি দেখুন): উইন্ডোজগুলিতে ফাইলের নাম %HOME%\_netrc

এছাড়াও আপনি এনক্রিপ্ট করতে চাইলে VonC এর প্রথম মন্তব্যটি পড়ুন।

আরেকটি সংযোজন (ব্যবহারকারী137717 এর মন্তব্যটি দেখুন) যা আপনার কাছে 1.7.10 বা নতুন হলে git ব্যবহার করতে পারে।

একটি শংসাপত্র সহায়ক ব্যবহার করে আপনার জিথব পাসওয়ার্ডটি গিটে ক্যাশ করুন :

যদি আপনি HTTPS ব্যবহার করে GitHub রিপোজিটরিগুলি ক্লোন করছেন তবে আপনি GitHub- এ যে কোনও সময় গিটহুব-এর সাথে কথাবার্তা বলে আপনার GitHub ব্যবহারকারীর নাম ও পাসওয়ার্ডটি মনে রাখার জন্য Git কে বলতে একটি ক্রেডেনশিয়াল সহায়ক ব্যবহার করতে পারেন।

এটি লিনাক্স, ম্যাক এবং উইন্ডোজগুলিতেও কাজ করে।


পূর্ববর্তী উত্তর দ্বারা বিভ্রান্ত যারা uninitiated জন্য, আপনি করতে পারেন:

git remote -v

যা মত কিছু সাড়া হবে

origin  https://[email protected]/yourname/yourrepo.git (fetch)
origin  https://[email protected]/yourname/yourrepo.git (push)

তারপরে আপনি অন্যকে পরামর্শ দিয়েছেন এমন কমান্ডটি চালাতে পারেন, কিন্তু এখন আপনি উপরে থেকে আপনার নাম এবং yourrepo জানেন, তাই আপনি উপরের নাম থেকে আপনার নাম yourname/yourrepo.git কেটে এবং পেস্ট করতে পারেন।

git remote set-url origin [email protected]:yourname/yourrepo.git

যদি ssh কী বা .netrc আপনার জন্য কাজ না করে তবে আপনার জন্য কাজ করতে পারে এমন আরেকটি সহজ কিন্তু কম নিরাপদ সমাধান হল git-credential-store - হেলপার ডিস্কের শংসাপত্রগুলি সংরক্ষণ করতে

git config --global credential.helper store

ডিফল্ট প্রমাণপত্রাদি দ্বারা ~/.git-credentials সংরক্ষিত হবে। এটা তৈরি করা হবে এবং লেখা হবে।

এই সহায়িকার ব্যবহার করে নোট করুন আপনার পাসওয়ার্ডগুলি ডিস্কের মধ্যে এনক্রিপ্ট করা হবে, শুধুমাত্র ফাইল সিস্টেম অনুমতি দ্বারা সুরক্ষিত। এটি একটি গ্রহণযোগ্য নিরাপত্তা tradeoff নাও হতে পারে।


HTTPS জন্য আপডেট করুন:

জিথুব উইন্ডোজ এর জন্য একটি নতুন প্রোগ্রাম চালু করেছে যা আপনি যখন HTTPS ব্যবহার করছেন তখন আপনার শংসাপত্রগুলি সঞ্চয় করে:

ব্যবহার করা:

here থেকে প্রোগ্রাম ডাউনলোড here

একবার আপনি প্রোগ্রাম চালানোর পরে এটি আপনার। .gitconfig ফাইল সম্পাদনা করবে। আপনার যদি এটির .gitconfig ক্ষেত্রে সঠিক। .gitconfig সম্পাদনা করা থাকে তবে .gitconfig করুন। যদি এটি সঠিক সম্পাদনা না করে তবে আপনার .gitconfig এ নীচের যোগ করুন

[credential]
    helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'

[credential] পরে লাইন বিরতি উল্লেখ্য। এটা দরকার.

আপনার কমান্ড লাইন ক্লায়েন্ট খুলুন এবং একবার git push origin master চেষ্টা করুন। যদি এটি আপনাকে একটি পাসওয়ার্ড জিজ্ঞাসা করে, এটি লিখুন এবং আপনি মাধ্যমে। পাসওয়ার্ড সংরক্ষিত!





git-clone