গিথাব প্রাইভেট রেপোর জন্য 'টার্মিনাল প্রম্পটগুলি অক্ষম করা' ত্রুটিতে ফলাফল পান go


187

আমি আমার ব্রাউজার থেকে গিথুব ইউআই ব্যবহার করে ব্যক্তিগত রেপো উদাহরণসই / মাইপ্রাইভেটেরপো তৈরি করেছি।

তারপরে আমি আমার গো ডিরেক্টরিতে (ডেস্কটপে) গিয়ে ক্লোন করেছিলাম:

$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo

এ পর্যন্ত সব ঠিকই. ফাইল শিডিয়র.রেগো তৈরি করেছে, রেপোতে যুক্ত হয়েছে, এবং ঠেলাঠেলি করে।

$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push

অলথ্যাঞ্জের ঠিক আছে। কিন্তু যখন আমি একটি পরিষ্কার ল্যাপটপে গিয়ে রেপো ক্লোন করার চেষ্টা করি, তখন আমি একটি ত্রুটি পেয়েছিলাম:

# Now on laptop, which doesn't yet know about the repo
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
# At this point it should ask for my user ID and password ,right? But it doesn't.
# Instead, this error occurs:
cd .; git clone https://github.com/examplesite/myprivaterepo /Users/tom/go/src/github.com/examplesite/myprivaterepo
Cloning into '/Users/tom/go/src/github.com/examplesite/myprivaterepo'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/examplesite/myprivaterepo: exit status 128

আমার ল্যাপটপটি কেন নিজের রেপোতে ঘৃণা করছে এবং আমি কীভাবে এটির ভাগ্য স্বীকার করতে পারি? ধন্যবাদ।


10
এটি কোনও goত্রুটি নয়, gitপ্রত্যাবর্তন করছে "টার্মিনাল প্রম্পটগুলি অক্ষম"। আপনি কি git clone https://github.com/examplesite/myprivaterepoআপনার ল্যাপটপে চালাতে পারবেন ?
জিমবি

1
ধন্যবাদ. গিট ক্লোন কাজ করেছে। তারপরে কাজটি করতে যান। চুক্তিটি কি ছিল? আমাকে কি প্রতিবারের মতো এই "পাম্প প্রাইম" করতে হবে বা আমি কিছু ভুল কনফিগার করেছি?
টমক্যাম

1
@ টমক্যাম, আপনি গিথব অ্যাকাউন্টে এসএসএস কী যুক্ত করতে পারেন এবং শুরু থেকেই কাজ শুরু করতে পারেন, হেল্প.github.com/articles/generating-ssh-keys দেখুন
অলেক্স ভাসি

@ আলেক্সওয়াসি: এটি কেবল তখনই কাজ করবে যখন তিনি প্রথমে এসএস-এর উপর রেপো ক্লোন করেন, কারণ https://github.com/আমদানির পথটি না থাকলে এটি অনুরোধ করবে । Git প্রক্রিয়া ব্যবহারকারীর নাম / পাসওয়ার্ড প্রম্পট করতে সক্ষম হওয়া উচিত, তাই ল্যাপটপ কনফিগারেশনে কিছু আলাদা হতে হবে - ইত্যাদি বিভিন্ন শেল, বিভিন্ন .gitconfig, একটি env পরিবর্তনশীল,
JimB

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

উত্তর:


173

যান পেতে ডিফল্টরূপে "টার্মিনাল প্রম্পট" অক্ষম করে। গিটের পরিবেশগত পরিবর্তনশীল সেট করে এটি পরিবর্তন করা যেতে পারে:

env GIT_TERMINAL_PROMPT=1 go get github.com/examplesite/myprivaterepo

306

আমি এটি অত্যন্ত সহায়ক বলে মনে করেছি এবং এটি আমার সমস্যার সমাধান করেছে। এই কমান্ডটি আপনার 2 এফএটিকে তার কাজটি করার অনুমতি দেবে (এবং আপনাকে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড দেওয়ার সমস্যাটি বাঁচাবে):

git config --global --add url."git@github.com:".insteadOf "https://github.com/"

সূত্র: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html

যদি আপনি 2 এফএ ব্যবহার না করেন তবে আপনি এসএসএইচ ব্যবহার করতে পারেন এবং এটি কার্যকর হবে।

সম্পাদনা করুন: স্লতুনজির--add পরামর্শ অনুসারে পতাকাটি যুক্ত হয়েছে


12
আমি যুক্ত করার প্রস্তাব দিই --add : পতাকা যাতে আপনি বিদ্যমান সেটিংস ওভাররাইট না তুমি উদাহরণস্বরূপ থাকতে পারেgit config --global --add url."git@github.com:".insteadOf "https://github.com/"
slatunje

ধন্যবাদ স্লাতুনজে, আপনার প্রতিক্রিয়ার ভিত্তিতে আমার উত্তরটিতে পতাকা যুক্ত করেছে।
উইলিয়াম জড

5
এটি সেরা সমাধান আইএমও। ব্যবহারকারীর নাম / পাসওয়ার্ডের পরিবর্তে
লেখকের

1
উইন্ডোজ এ করবেন না। আমি ত্রুটি দিয়ে শেষ git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
শীতল শাহ 3'18

1
লিনাক্সের জন্যও কাজ করে। আপনি যদি ssh
গ্লোবাল

38

1 ম - go getকমান্ড লাইনে প্রমাণীকরণ করতে অস্বীকার করবে। সুতরাং আপনাকে গিলে শংসাপত্রগুলি ক্যাশে করা দরকার। কারণ আমি ওএসএক্স ব্যবহার করি আমি ওসকিচেইন শংসাপত্র সহায়ক ব্যবহার করতে পারি।

আমার জন্য ২ য় বারের জন্য, আমি ২ এফএ সক্ষম করেছি এবং এভাবে আমার পাসওয়ার্ড লেখার জন্য ব্যবহার করতে পারিনি। পরিবর্তে আমাকে পাসওয়ার্ডের জায়গায় ব্যবহার করার জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করতে হয়েছিল।

  1. সেটআপ osxkeychain ক্রেডেনশিয়াল সাহায্যকারী https://help.github.com/articles/caching-your-github-password-in-git/
  2. যদি আপনার পাসওয়ার্ডটি ব্যবহার করার পরিবর্তে টিএফএ ব্যবহার করে তবে রেপো স্কোপ সহ ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন https://github.com/settings/tokens
  3. গিটটি একটি ব্যক্তিগত git clone https://github.com/user/private_repo রেপোটিকে কেবল পাসওয়ার্ডটি ক্যাশে রাখতে ক্লোন করে এবং আপনার github.com ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করে।
  4. স্রেফ ক্লোনড রেপো সরানো হয়েছে এবং শংসাপত্রগুলি ক্যাশে হয়েছে তা নিশ্চিত করার জন্য পুনরায় পরীক্ষা করা - git clone https://github.com/user/private_repoএবং এই সময়টিতে শংসাপত্রের জন্য জিজ্ঞাসা করা হয়নি।

    1. গো অ্যাক্সেস টোকন ব্যক্তিগত অ্যাক্সেস করতে পারে যে কোনও repos সঙ্গে কাজ করবে। অনুমতি পরিবর্তিত হওয়ায় আপনাকে অন্যান্য অ্যাকাউন্ট / টোকেন সহ পদক্ষেপগুলি পুনরায় করতে হবে।

1
আমার কাছে 2 এফএ রয়েছে এবং এটি আমার জন্য কাজ করেছে - একটি টোকেন তৈরি করেছে (সম্পূর্ণ সিফিকস সহ), git cloneআমার নিজস্ব একটি রেপো করেছে (এটি আসলে পাবলিক), আমার জন্য অনুরোধ usernameকরা হয়েছিল, আমার গিটহাবের ব্যবহারকারীর নামটি রেখেছিল , তারপরে এর জন্য উত্পাদিত টোকেন password- ক্লোন করা রেপো মোছা, তারপরে go getকমান্ডটি পুনরায় পুনরায় পাঠানো এবং সব কিছু ঠিকঠাক - ধন্যবাদ! (ওএসএক্সও এখানে)
এরিক ডরসি

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

16

আপনি যদি কেবল go getসত্যিকারের দ্রুত কাজ করতে চান , এবং আপনার কাজের সাথে এগিয়ে যান ...

শুধু রফতানি GIT_TERMINAL_PROMPT=1

$ export GIT_TERMINAL_PROMPT=1
$ go get [whatever]

এটি এখন আপনার শেল সেশনের বাকি অংশের জন্য আপনাকে একজন ব্যবহারকারী / পাসের জন্য অনুরোধ করবে। আরও স্থায়ী সমাধানের জন্য এটি উপরে .profileবা সেটআপে রাখুন git


14

এটি অভিযোগ করে কারণ এর sshপরিবর্তে এটি ব্যবহার করা দরকার httpsতবে আপনার গিটটি এখনও https দিয়ে কনফিগার করা আছে। সুতরাং অন্যদের আগে যেমন উল্লিখিত হয়েছে আপনাকে প্রম্পটগুলি সক্ষম করতে হবে বা তার sshপরিবর্তে গিটটি কনফিগার করতে হবে https। নিম্নলিখিত কাজ করে এটি করার একটি সহজ উপায়:

git config --global --add url."git@github.com:".insteadOf "https://github.com/"

বা আপনি যদি ইতিমধ্যে আপনার মেশিনে ব্যবহার sshকরেন তবে আপনি নীচের লাইনে gitনিরাপদে সম্পাদনা করতে ~/.gitconfigএবং যুক্ত করতে পারেন

দ্রষ্টব্য: এটি সমস্ত এসভিসি, উত্স সংস্করণ নিয়ন্ত্রণকে অন্তর্ভুক্ত করে যা আপনি ঠিক কী ব্যবহার করেন, গিথুব, গিটল্যাব, বিটবাকেট নির্ভর করে)

# Enforce SSH
[url "ssh://git@github.com/"]
  insteadOf = https://github.com/
[url "ssh://git@gitlab.com/"]
        insteadOf = https://gitlab.com/
[url "ssh://git@bitbucket.org/"]
  insteadOf = https://bitbucket.org/
  • আপনি যদি পাসওয়ার্ড পম্পট অক্ষম রাখতে চান তবে আপনাকে পাসওয়ার্ড ক্যাশে করতে হবে। ম্যাক, উইন্ডোজ বা লিনাক্সে আপনার গিথব পাসওয়ার্ড কীভাবে ক্যাশে করবেন সে সম্পর্কে আরও তথ্যের জন্য, দয়া করে এই পৃষ্ঠাটি দেখুন

  • আপনার গিথব অ্যাকাউন্টে কীভাবে এসএসএস যুক্ত করবেন সে সম্পর্কে আরও তথ্যের জন্য, দয়া করে এই পৃষ্ঠাটি দেখুন

এছাড়াও, আরও গুরুত্বপূর্ণ, এটি যদি কোনও সংস্থার জন্য বা আপনার নিজের জন্য ব্যক্তিগত সংগ্রহস্থল হয় তবে এগুলি সরকারীভাবে প্রকাশ করা এড়াতে আপনাকে এই জাতীয় रिपোর জন্য প্রক্সি বা চেকসাম ডাটাবেস ব্যবহার এড়িয়ে যেতে হবে।

এটি করার জন্য, আপনাকে GOPRIVATEএনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে যা গো কমান্ড কোন মডিউলগুলি ব্যক্তিগত বলে বিবেচনা করে (সর্বজনীনভাবে উপলভ্য নয়) তা নিয়ন্ত্রণ করে এবং তাই প্রক্সি বা চেকসাম ডাটাবেস ব্যবহার করা উচিত নয়

ভেরিয়েবলটি path.Matchমডিউল পাথ উপসর্গগুলির একটি কমা-বিচ্ছিন্ন প্যাটার্নগুলির তালিকা (গো'র একই সিনট্যাক্স )। উদাহরণ স্বরূপ,

export GOPRIVATE=*.corp.example.com,github.com/mycompany/*

অথবা

go env -w GOPRIVATE=github.com/mycompany/*

একটি শেষ কথা উল্লেখ করতে ভুলবেন না, আপনি এখনও go getপ্রমাণীকরণ এবং আনতে কনফিগার করতে পারেন https, আপনাকে যা করতে হবে তা হল নিম্নলিখিত লাইনটি এতে যুক্ত করা$HOME/.netrc

machine github.com login USERNAME password APIKEY
  • গিটহাব অ্যাকাউন্টগুলির জন্য, পাসওয়ার্ডটি ব্যক্তিগত অ্যাক্সেস টোকেন হতে পারে ।
  • এটি কীভাবে করবেন সে সম্পর্কে আরও তথ্যের জন্য, দয়া করে Go FAQ পৃষ্ঠাটি দেখুন।

আমি আশা করি এটি সম্প্রদায়কে সহায়তা করে এবং বর্ণিত সমস্যাগুলি দ্রুত সমাধানে অন্যের সময় সাশ্রয় করে। আপনি আরও সমর্থন বা সহায়তা চান ক্ষেত্রে দয়া করে বিনা দ্বিধায় মন্তব্য করুন।


GOPRIVATE( go env -w GOPRIVATE=github.com/mycompany/*) আমার পক্ষে কাজ করা একমাত্র জিনিস। আমি এটিকে নিজের শিরোনামের নীচে রাখার বা এমনকি তার নিজের একটি উত্তরে আরও কিছুটা হাইলাইট করার পরামর্শ দিচ্ছি।
বার্নহার্ড বার্কার

1

আপনি যদি এই অপশনটি দিয়ে আপনার গিটকনফিগটি কনফিগার করেন তবে আপনাকে পরে গিটহাবের অন্যান্য রেপো ক্লোন করতে সমস্যা হবে

git config --global --add url. "Git@github.com". Instead, "https://github.com/"

পরিবর্তে, আমি আপনাকে এই বিকল্পটি ব্যবহার করার পরামর্শ দিচ্ছি

echo "export GIT_TERMINAL_PROMPT=1" >> ~/.bashrc || ~/.zshrc

এবং আপনার ব্যক্তিগত সংগ্রহস্থল থেকে অ্যাক্সেস টোকেন তৈরি করতে ভুলবেন না। আপনার পাসওয়ার্ড প্রবেশ করানোর অনুরোধ জানানো হলে, কেবল অ্যাক্সেস টোকেনটি পেস্ট করুন। শুভ ক্লোন :)


0

উইন্ডোতে আমার একই সমস্যা ছিল "ত্রুটি: প্রম্পট স্ক্রিপ্ট কার্যকর করতে ব্যর্থ হয়েছে (প্রস্থান কোড 1) মারাত্মক: ' https://github.com ' এর জন্য ব্যবহারকারীর নাম পড়তে পারেনি : লগইন কথোপকথনের মাধ্যমে গিথুবটিতে লগইন করার চেষ্টা করতে কোনও ত্রুটি নেই"। আমি যখন ডায়লগটি বাতিল করলাম তখন কমান্ড লাইনে লগইন এবং পাসওয়ার্ডের জন্য আমাকে জিজ্ঞাসা করেছিল এবং এটি ভাল কাজ করে।

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