"গিট ক্লোন git@remote.git" চালানোর সময় আমি কীভাবে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করব?


844

আমি জানি কীভাবে এইচটিটিপিএস অনুরোধে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করতে হয়:

git clone https://username:password@remote

তবে আমি এটির মতো দূরবর্তীটিতে কীভাবে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করব তা জানতে চাই:

git clone git@remote.git

আমি এরকম চেষ্টা করেছি:

git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password

তবে তারা কাজ করেনি।


4
আপনি পারবেন না। "@" এর আগে "গিট" ইতিমধ্যে একটি ব্যবহারকারীর নাম। সংগ্রহস্থলটি ইউআরএল (git@remote.get) আপনি কোথা থেকে পেয়েছেন? আপনি আলাদা ধারণা ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিতে হবে এমন ধারণাটি আপনি কোথা থেকে পেয়েছেন?
কেন থমাসেস

3
আমার রেপোসের ইউআরএল হিরকু "git@heroku.com: zxy-helloworld.git" থেকে। এবং আমি ক্লোন এবং ধাক্কা দিতে ইম্যাক্স শেল ব্যবহার করি। শেলটি যদি পাসওয়ার্ডের জন্য জিজ্ঞাসা করে, ইমাসগুলি স্তব্ধ হয়ে যাবে। এটি উইন্ডোজে ইম্যাক্স
সমন্বিত করুন

যদি ব্যবহারকারীর নামটি একটি ইমেল হয়? আপনি কিভাবে এটি টাইপ করবেন? myemail @ gmail.com @ উদাহরণ . com ?
কিওন পেরেজ

উত্তর:


1316

মাইকেল Scharf এর মন্তব্যের ভিত্তিতে:

আপনি পাসওয়ার্ডটি ছেড়ে দিতে পারেন যাতে এটি আপনার বাশ ইতিহাসের ফাইলে লগ হয় না:

git clone https://username@github.com/username/repository.git

এটি আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ করবে।

বিকল্পভাবে, আপনি ব্যবহার করতে পারেন:

git clone https://username:password@github.com/username/repository.git

এইভাবে গিটহাবের সংগ্রহশালা থেকে আমার পক্ষে কাজ করেছে।


5
এটি উপায় দ্বারা একই হতে হবে না। যদি আপনার সহকর্মী গিট রেপো তৈরি করে থাকেন এবং আপনি অন্য অ্যাকাউন্ট হিসাবে লগ ইন করছেন তবে সেগুলি একই হবে না।
হলগ্যাক

48
এই ফাইলটি .git / কনফিগারেশনে সংরক্ষিত হওয়ার জন্য URL এ পাসওয়ার্ড রাখার পরামর্শ দেওয়া হয় না। নিরাপদ নয়, ssh কী ব্যবহার করা আরও ভাল
zetanova

55
@ মিঃডুকের কোনও সমস্যা নেই, এড়িয়ে চলুন (% 40 বছরের মত)
বেনিয়ামিন গ্রুইনবাউম

57
আপনি খুঁজে চলে যাবে পাসওয়ার্ড: git clone https://username@github.com/username/repository.git। Git আপনাকে জিজ্ঞাসা করবে এবং এটি .git / কনফিগ মধ্যে কিংবা আপনার ব্যাশ ইতিহাসে সংরক্ষিত হবে না
Michael_Scharf

36
আপনি লাইনটির শুরুতে 'স্পেস' টাইপ করতে পারেন যাতে লিনাক্স ইতিহাসে কমান্ড সংরক্ষণ না করে
নিকোলাস জোজল

212

user@host:path/to/repoবিন্যাস ব্যবহার করুন SSH করার গীত বলে লগ ইন করার hostব্যবহারকারী নাম দিয়ে user। থেকে git help clone:

এসএসএস প্রোটোকলের সাথে বিকল্প স্ক্র্যাপের মতো সিনট্যাক্স ব্যবহার করা যেতে পারে:

[user@]host.xz:path/to/repo.git/

@ব্যবহারকারীর নাম, এবং প্রমাণীকরণ পদ্ধতি (পাসওয়ার্ড, পাবলিক কী ইত্যাদি) এর পূর্ববর্তী অংশটি গিট নয়, এসএসএস দ্বারা নির্ধারিত হয়। গিটের পাসওয়ার্ড পাস করার কোনও উপায় নেই sh কারণ ssh দূরবর্তী সার্ভারের কনফিগারেশনের উপর নির্ভর করে একটি পাসওয়ার্ডও ব্যবহার করতে পারে না।

ssh-agentপাসওয়ার্ড টাইপ করা এড়াতে ব্যবহার করুন

আপনি যদি নিজের এসএস পাসওয়ার্ডটি সর্বদা টাইপ করতে না চান তবে সাধারণ সমাধানটি হল একটি পাবলিক / প্রাইভেট কী জুড়ি উত্পন্ন করা, আপনার ~/.ssh/authorized_keysফাইলটিতে সর্বজনীন কী আপনার রিমোট সার্ভারে রাখা এবং এতে আপনার ব্যক্তিগত কী লোড করা ssh-agent। আরো দেখুন SSH- র মাধ্যমে কনফিগার গীত একবার লগইন করতে , ssh কী পরিচয়-পংক্তি উপর GitHub এর সহায়তা পৃষ্ঠা , gitolite এর SSH ডকুমেন্টেশন এবং Heroku এর SSH কী ডকুমেন্টেশন

গিটহাব (বা হিরোকু বা ...) এ একাধিক অ্যাকাউন্টের মধ্যে নির্বাচন করা হচ্ছে

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

উদাহরণস্বরূপ, ধরুন আপনার দুটি গিটহাব অ্যাকাউন্ট রয়েছে: fooএবং bar। জন্য ssh কী fooহয় ~/.ssh/foo_github_idএবং জন্য আপনার ssh কী barহয় ~/.ssh/bar_github_id। আপনি অ্যাক্সেস করতে চান git@github.com:foo/foo.gitআপনার সঙ্গে fooঅ্যাকাউন্ট এবং git@github.com:bar/bar.gitআপনার সঙ্গে barঅ্যাকাউন্ট। আপনি নিম্নলিখিতগুলিতে আপনার যুক্ত করবেন ~/.ssh/config:

Host gh-foo
    Hostname github.com
    User git
    IdentityFile ~/.ssh/foo_github_id
Host gh-bar
    Hostname github.com
    User git
    IdentityFile ~/.ssh/bar_github_id

এরপরে আপনি দুটি সংগ্রহস্থল ক্লোন করে নিবেন:

git clone gh-foo:foo/foo.git  # logs in with account foo
git clone gh-bar:bar/bar.git  # logs in with account bar

পুরোপুরি ssh এড়ানো

কিছু পরিষেবা ssh এর বিকল্প হিসাবে HTTP অ্যাক্সেস সরবরাহ করে:

সতর্কতা : ক্লোন ইউআরএলতে আপনার পাসওয়ার্ড যুক্ত করার ফলে গিট আপনার প্লেইনেক্সট পাসওয়ার্ডটি এতে সংরক্ষণ করবে .git/config। HTTP ব্যবহার করার সময় আপনার পাসওয়ার্ডটি সুরক্ষিতভাবে সঞ্চয় করতে, কোনও শংসাপত্র সহায়ক ব্যবহার করুন er উদাহরণ স্বরূপ:

git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git

উপরের কারণে গিট প্রতি 15 মিনিটে একবার (ডিফল্টরূপে) আপনার পাসওয়ার্ড জানতে চাইবে। দেখুন git help credentialsবিস্তারিত জানার জন্য।


গিটটি এসএসএইচের সাথে কীভাবে কাজ করে তার সর্বোত্তম ব্যাখ্যা। আমার বোধগম্যতা হল আপনি যখন git@githost.com: पथ / থেকে / repo.git নির্দিষ্ট করেন, তখন এটি কার্যকরভাবে গিটকে বলে যে ব্যবহারকারী নিজেই গিট এবং এটির জন্য ssh-এজেন্টের কাছ থেকে আপনার শংসাপত্রগুলি (পাবলিক কী) গ্রহণ করা উচিত হোস্ট "githost.com"।
আনালে

39

@ বাসসটাসেনের উত্তরের মন্তব্যে, @ প্লাসকো উল্লেখ করেছেন যে আপনি git clone https://<token>@github.com/username/repository.gitখুব কম সময়ে গিটহাব থেকে ক্লোন করতে ব্যবহার করতে পারেন । আমি ভেবেছিলাম যে আমি কীভাবে এটি প্রসারিত করব, যদি কেউ এই উত্তরটি আসে তবে আমি কিছু ক্লোনিং স্বয়ংক্রিয় করার চেষ্টা করার সময় করেছিলাম did

এটি কীভাবে করবেন সে সম্পর্কে গিটহাবের খুব কার্যকরী গাইড রয়েছে তবে অটোমেশনের উদ্দেশ্যে আপনি যদি এগুলি সমস্ত এক লাইনে অন্তর্ভুক্ত করতে চান তবে কী করবেন তা এটি কভার করে না। এটি সতর্ক করে দিয়েছে যে ক্লোন ইউআরএলে টোকেন যুক্ত করা এটি এটিকে সরলরেখায় সংরক্ষণ করবে .git/config । এটি প্রায় প্রতিটি ব্যবহারের ক্ষেত্রে অবশ্যই একটি সুরক্ষা ঝুঁকি, কিন্তু যেহেতু আমি রেপো মুছে ফেলার এবং টোকনটি বাতিল করার পরিকল্পনা করি তাই আমি কিছু করি না।

1. একটি টোকেন তৈরি করুন

টোকেন কীভাবে পাবেন সে সম্পর্কে এখানে গিটহাবের পুরো গাইড রয়েছে তবে এখানে টিএল; ডিআর।

  1. যান সেটিংস> বিকাশকারীর সেটিংস> ব্যক্তিগত অ্যাক্সেস টোকেন ( এখানে একটি সরাসরি লিঙ্ক )
  2. "একটি নতুন টোকেন উত্পন্ন করুন" এ ক্লিক করুন এবং আবার আপনার পাসওয়ার্ড প্রবেশ করান। (এইচ এর অন্য সরাসরি লিঙ্ক )
  3. এর জন্য একটি বিবরণ / নাম সেট করুন, "রেপো" অনুমতিটি পরীক্ষা করুন এবং পৃষ্ঠার নীচে "জেনারেট টোকেন" বোতামটি চাপুন।
  4. পৃষ্ঠাটি ছাড়ার আগে আপনার নতুন টোকেনটি অনুলিপি করুন

2. রেপো ক্লোন করুন

একই হিসাবে কমান্ড @plosco দিয়েছেন, git clone https://<token>@github.com/<username>/<repository>.gitশুধু প্রতিস্থাপন <token>, <username>এবং <repository>যাই হোক না কেন সঙ্গে আপনার তথ্য।

আপনি যদি এটি কোনও নির্দিষ্ট ফোল্ডারে ক্লোন করতে চান তবে ঠিক ফোল্ডারের ঠিকানাটি শেষের মতো সন্নিবেশ করুন :, git clone https://<token>@github.com/<username>/<repository.git> <folder>কোথায় <folder>, আপনি অনুমান করেছেন, ফোল্ডারটি এটি ক্লোন করার জন্য! আপনি অবশ্যই ব্যবহার করতে পারেন. , .., ~মত আপনি অন্য কোথাও এখানে, ইত্যাদি।

3. কোন ট্রেস ছেড়ে দিন

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

  • আপনি যদি কিছু সময়ের জন্য এটি ব্যবহারের কোনও উদ্দেশ্য না রাখেন তবে আপনি সম্ভবত সেই টোকনটি ঝুলতে চান না, তাই টোকেন পৃষ্ঠায় ফিরে যান এবং তার পাশের মুছুন বোতামটি টিপুন।
  • আপনার যদি আবার রেপোর দরকার না হয়, এটি মুছুন rm -rf <folder>
  • যদি আবার রেপুর দরকার হয় তবে এটিকে আবার স্বয়ংক্রিয় করার দরকার নেই, আপনি কাজ করে রিমোটটি সরিয়ে ফেলতে পারেন git remote remove originবা চালিয়ে টোকেনটি সরিয়ে ফেলতে পারেনgit remote set-url origin https://github.com/<username>/<repository.git>
  • টোকেনটি সেখানে লগইন না করে তা নিশ্চিত করার জন্য আপনার বাশ ইতিহাস সাফ করুন। এটি করার অনেক উপায় রয়েছে, এই প্রশ্নটি এবং এই প্রশ্নটি দেখুন । যাইহোক, উপরের সমস্ত কমান্ডগুলিকে কেবল কোনও স্থান দিয়ে পুনরায় সংস্থান করা সহজ হতে পারে যাতে এগুলি শুরু করার জন্য সংরক্ষণ করা যায় না।

মনে রাখবেন যে আমি কোনও সমর্থক নই, সুতরাং উপরোক্ত ধারণাটি সুরক্ষিত নাও হতে পারে যে কোনও ধরণের ফরেনসিক কাজের জন্য কোনও চিহ্নই অবশিষ্ট থাকবে না।


1
https://<token>@github.comআমার পোর্টালটির সাথে গ্রহণ করা হয়নি, আমাকে ব্যবহার করতে হয়েছিলhttps://oauth2:<token>@github.com
মুশিপিস

25

যদিও অনেক উত্তর রয়েছে, যখন আমি ব্যবহারকারীর নাম বা পাসওয়ার্ডের মধ্যে বিশেষ অক্ষর থাকি তখন আমি পুনরাবৃত্তি সমস্যার মুখোমুখি হই।

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

বলুন, ইউআরএল ব্যবহারকারীর মান এনকোডড

'ব্যবহারকারী + 1' ব্যবহারকারী% 2B1

এবং পাসওয়ার্ডের URL এনকোডযুক্ত মান

'ওয়েলকাম @ 1234' হ'ল ওয়েলকাম% 401234

তারপরে আপনার জিআইটি ক্লোন ইউআরএলটি দেখতে হবে,

git clone https://user%2B1:Welcome%401234@actual-git-url-for-the-repo পুরোপুরি কাজ করে, যদিও,

গিট ক্লোন https: // ব্যবহারকারী + 1: রিপো @ 1234 @ রিয়েল-গিট-ইউআরএল-দ্য-রেপো আপনাকে 403 ত্রুটি দেয়

আশাকরি এটা সাহায্য করবে.

সেক্ষেত্রে অনলাইনে ইউআরএল এনকোড করতে চান: https://www.urlencoder.org/


13

আমি এই সমস্যাটি নিম্নলিখিত উপায়ে সমাধান করেছি:

এখানে চিত্র বর্ণনা লিখুন


11
কমান্ড লাইনে আপনার পাসওয়ার্ড টাইপ করার জন্য কখনও ভাল ধারণা idea আপনি কি জানেন যে আপনার সিস্টেম কোনও ফাইলের মধ্যে কমান্ড লাইনের ইতিহাস সংরক্ষণ করতে পারে? (প্রাক্তন: লিনাক্সের .bash_history নামে একটি লুকানো ফাইল রয়েছে)
আগস্ট

সঠিক। যখনই আমি এটি করি বা এটির মতো এমন কিছু করি যা মাঝে মাঝে খুব সুবিধাজনক হতে পারে তবে আমি সর্বদা ইতিহাস থেকে ব্যবহৃত আদেশটি (ইতিহাস-ডি) মুছে ফেলি।
ফ্রান্সেস্কো মার্কেটি-স্টাসি

4
@ ফরাসীসোমারচেটি-স্টাসি আপনার কমান্ডটি মুছে ফেলতে হবে না, কেবল কমান্ডের শুরুতে একটি স্থান ব্যবহার করুন এবং এটি ইতিহাসে কখনও সংরক্ষণ করা হবে না।
ইশতিয়াক হুসেইন

হ্যাঁ - আমি ইউনিক্স সিস্টেমে প্রায় 30 বছর পরে ... কয়েক মাস আগে এটি শিখেছি ... আমার জন্য লজ্জা :)
ফ্রান্সেস্কো মার্কেটি-স্টাসি

9

উইন্ডোজে , নীচের পদক্ষেপগুলি আইএনটি করার সময় গিটহাব লগইন উইন্ডোটিকে পুনরায় ট্রিগার করতে হবে git clone:

  • "শংসাপত্র পরিচালক" জন্য অনুসন্ধান মেনু অনুসন্ধান করুন
  • "উইন্ডোজ শংসাপত্রগুলি" নির্বাচন করুন
  • গিট বা গিটহাব সম্পর্কিত কোনও শংসাপত্র মুছুন

ফলাফল


7

যদি তারা কোনও সমস্যা তৈরি করে থাকে তবে আপনার বিশেষ কেসগুলির সাথে প্রতিস্থাপন করতে এই যুক্তিগুলি অনুসরণ করুন:

! # $ & '() * +, /:; =? @ []

% 21% 23% 24% 26% 27% 28% 29% 2A% 2B% 2C% 2F% 3A% 3B% 3D% 3F% 40% 5B% 5D

সুতরাং উদাহরণস্বরূপ-

প্রকৃত ইউআরএল: https: // usern @ me: p @ ssword @ git / reponame.git

সমাধানের URL টি ব্যবহার করুন: https: // usern% 40me: p%40ssword@git/reponame.git


5
git config --global core.askpass

একইভাবে ক্লোনিংয়ের আগে এটি প্রথম চালান, ঠিক করা উচিত!


3
সেটিকে চেষ্টা করেও, এখনও এর জন্য জিজ্ঞাসা করে না।
মার্টেন কিফট

গ্লোবাল কনফিগারেশন সেট করা কখনই ভাল ধারণা নয় কারণ এটি অন্যান্য ক্লোনগুলিকে গোলমেলে ফেলতে পারে।
মার্টিন

1

এটি একটি দুর্দান্ত স্ট্যাক ওভারফ্লো প্রশ্ন, এবং উত্তরগুলি খুব শিক্ষণীয় ছিল, যেমন আমি সম্প্রতি যে বিরক্তিকর সমস্যার সমাধান করেছি তাতে আমি সমাধান করতে সক্ষম হয়েছি।

আমি যে সংস্থার জন্য কাজ করি সেগুলি Atlassian's BitBucketপণ্য (গিথুব নয়) ব্যবহার করে, মূলত তাদের গীটহাবের সংস্করণ যাতে গ্রন্থগুলি সম্পূর্ণরূপে সুরক্ষিত হতে পারে। আমি @ কর্ডিনেটের মতো একই ধরণের সমস্যায় পড়ছিলাম, আমি যে নতুন সংগ্রহস্থলটি যাচাই করেছিলাম তার জন্য আমার পাসওয়ার্ডের প্রয়োজন ছিল। আমার শংসাপত্রগুলি সকলের জন্য বিশ্বব্যাপী সংরক্ষণ করা হয়েছিলBitBucket প্রকল্পের , সুতরাং আমি নিশ্চিত নই কি কারণে শংসাপত্রগুলি হারাতে প্ররোচিত হয়েছিল।

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

git clone https://user@code.domain.org/git/[organization]/[team]/[repository.git]

দ্রষ্টব্য: বন্ধনীযুক্ত ডিরেক্টরি সাব-পাথগুলি কেবল অভ্যন্তরীণ রেফারেন্সগুলিকে উল্লেখ করে এবং এটি আপনার জন্য পৃথক হবে!


0

আপনি ব্যবহার করেন, তাহলে http/httpsএবং আপনাকে খুঁজছেন সম্পূর্ণরূপে স্বয়ংক্রিয় (উদাহরণস্বরূপ: একটি সি আই / সিডি পাইপলাইন ভিতরে) কোন ব্যবহারকারীর ইনপুট বা এ সব প্রম্পট যেকোনো ব্যবহারকারী প্রয়োজন ছাড়া প্রক্রিয়া, আপনি নিম্নলিখিত পদ্ধতির উপজীব্য ব্যবহার করতে পারেনgit credential.helper

GIT_CREDS_PATH="/my/random/path/to/a/git/creds/file"
# Or you may choose to not specify GIT_CREDS_PATH at all.
# See https://git-scm.com/docs/git-credential-store#FILES for the defaults used

git config --global credential.helper "store --file ${GIT_CREDS_PATH}"
echo "https://alice:${ALICE_GITHUB_PASSWORD}@github.com" > ${GIT_CREDS_PATH}

আপনি সেট করতে চয়ন করতে পারেন যেখানে ALICE_GITHUB_PASSWORD পূর্বের শেল কমান্ড বা আপনার পাইপলাইন কনফিগারেশন থেকে পরিবেশ পরিবর্তনশীল etc.

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


এখন কেবল ব্যবহার HTTPS: //alice@github.com/my_repo.git যেখানেই থাকুন না কেন আপনার স্বচালিত সিস্টেম প্রয়োজন রেপো আনতে - এটা পরিচয়পত্র জন্য ব্যবহার করবে aliceমধ্যে github.comGit-ক্রেডেনশিয়াল-সাহায্যকারী দ্বারা দোকান হিসাবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.