গিটহাব ত্রুটি বার্তা - অনুমতি অস্বীকার করা হয়েছে (সার্বজনীন)


700

এই ত্রুটিটি কেউ দেখেছেন এবং কী করবেন জানেন?

আমি টার্মিনালটি ব্যবহার করছি, আমি মূলের মধ্যে আছি, গিটহাবের সংগ্রহস্থল উপস্থিত রয়েছে এবং আমি এখন কী করব তা জানি না।

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


2
একই প্রশ্ন: stackoverflow.com/questions/16074832/...
JMoran

1
.Ss এবং লেখক কীগুলির সাহায্যে অনুমতি সংক্রান্ত সমস্যা হতে পারে। এসএসএস বেশ কড়া, গুগল করুন।
কার্ল মরিসন


মত @bdukes 'উত্তর এখানে ব্যবহার কমান্ড HTTPS এবং এটি কাজ করবে, উইন্ডোস উদাহরণ: "দ্রষ্টব্য সি: \ XAMPP \ htdocs> Git ক্লোন github.com/algolia/instant-search-demo.git "
দুং

উত্তর:


661

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

আপনি এসএসএইচ কীগুলি ব্যবহার করতে এড়াতে এসএসএইচ / গিট URL এর পরিবর্তে এইচটিটিপিএস ইউআরএলও ব্যবহার করতে পারেন। এটি গিটহাবের প্রস্তাবিত পদ্ধতি

আরও, গিটহাবের বিশেষত সেই ত্রুটি বার্তার জন্য একটি সহায়তা পৃষ্ঠা রয়েছে এবং আপনি যা যা পরীক্ষা করতে পারেন তার আরও বিশদে ব্যাখ্যা করে।


53
এই ত্রুটিটি গিটহাবের সাথে একচেটিয়া নয়। আমি বিটবাকেটের সাথে একই ত্রুটি পাচ্ছি, এবং কীভাবে সমাধান করা যায় তা নিয়ে আমি আমার মাথা
আঁচড়ে দিচ্ছি

32
সাহায্য অংশ ব্যবহার করা হয় ssh -vT git@github.comথেকে গিটহাব সহায়তা পৃষ্ঠা সাহায্যের ডিবাগ কি কী আপনার রেপো ব্যবহার করছে। আমি আপনাকে আপনার উত্তরে এটি যুক্ত করার পরামর্শ দিচ্ছি।
ম্যাক্সিমবার্নার্ড

25
এসএসএলের পরিবর্তে এইচটিটিপিএস ব্যবহারের উত্সাহটি কিছুটা হতাশার। এসএসএইচ আরও বেশি সুবিধাজনক। উপরের @ ম্যাক্সিমবার্নার্ডের পরামর্শটি আমার জন্য সমস্যাটি সমাধান করেছে: জিআইটি .ssh ডিরেক্টরিটির জন্য সঠিক জায়গায় খুঁজছিল না। ssh -vT git@github.comএটি কেন কাজ করছে না তা ব্যবহার করে প্রচুর তথ্য সরবরাহ করা হয়।
ক্রিস্টোফ

1
উপরের আমার মতামত অনুসারে, তৃতীয় বিকল্পটি হ'ল কমান্ডটি ssh কী (যেমন রুট হিসাবে চলমান) সহ অন্য কোনও অ্যাকাউন্ট থেকে প্রেরণ করা হচ্ছে।
ডেভিড লেবাউর

1
@ থিপচি 64৪ হিসাবে উল্লিখিত: আপনি যদি ম্যাকের উপরে থাকেন এবং ইতিমধ্যে কোনও ssh কী তৈরি করেছেন "ssh-add" আসলে আপনি যা মিস করছেন তা হতে পারে। আমার জন্য কাজ করেছেন।
ডিজিটাল অস্থায়ীত্ব

78

আপনি কি আপনার। / .Ssh ডিরেক্টরিতে একটি কনফিগার ফাইল তৈরি করেছেন ? এটিতে এর মতো সামগ্রী থাকতে হবে:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

ধরে নিচ্ছি যে আপনি গিথুব_সার নামে একটি এসএস কী তৈরি করেছেন

এবং এটি গিটহাবে আপলোড করেছেন ...

দ্রষ্টব্য: আপনার ~ / .ssh / ডিরেক্টরিতে যদি আপনার 1 টির বেশি (2 এবং আরও বেশি) থাকে তবে আপনাকে অবশ্যই সুস্পষ্ট কনফিগারেশনের এই পদ্ধতিটি অনুসরণ করতে হবে। আপনি যদি এইভাবে কীটি নির্দিষ্ট না করেন তবে প্রথমে কীটি ক্রমে নেওয়া এবং গিথুব প্রমাণীকরণের জন্য ব্যবহৃত হয়, সুতরাং এটি মূল ফাইলটির নামের উপর নির্ভর করে।


1
আমি এসএস-কী তৈরি করেছিলাম এবং বেশ কিছু সময় কোনও সমস্যা ছাড়াই বেশ ভালভাবে কাজ করতে সক্ষম হয়েছি। এক দুর্দান্ত দিন (সম্ভবত পুনরায় চালু করার পরে), এটি কাজ করা বন্ধ করে দেয়, যেখানে কীটি গিথুব এবং আমার স্থানীয় সিস্টেমে অক্ষত ছিল। আমি কী-ম্যাপযুক্ত-থেকে-ডোমেন উল্লেখ করে "কনফিগারেশন ফাইল" যুক্ত করেছি। উপরে আইগোর-গণপলস্কি-উত্তরে সরবরাহ করা বিশদ। এটা ঠিক কাজ করে!
পরশ্রিশ

3
এটি সত্যিই আমার সমস্যার সমাধান! অনেক ধন্যবাদ! তবে আমার একটা প্রশ্ন আছে। আপনার পদ্ধতিটি ব্যবহার করার আগে, ssh -T git@github.comসঠিকভাবে প্রতিক্রিয়া জানানো হয়েছে, যখন git push -u origin masterপ্রশ্নটিতে একই ত্রুটি দেয়। আমি কেন এটির সাথে সঠিকভাবে সংযোগ করতে পারি তবে এটির দিকে ধাক্কা দিতে বা এটি থেকে আনতে পারি না?
ইডেন হার্ড

@ এডেনহার্ডার আমি একই সমস্যার মুখোমুখি হচ্ছি। আপনি কি এর উত্তর খুঁজে পেয়েছেন?
বর্ধধি ভাট

64

আমি এই সমস্যা জানি। Ssh কী যুক্ত করার পরে, আপনাকে ssh এজেন্টে ssh কী যুক্ত করুন (অফিশিয়াল ডক্স থেকে https://help.github.com/articles/generating-ssh-keys/ )

ssh-agent -s
ssh-add ~/.ssh/id_rsa

এটির পরে, সমস্ত কাজ ঠিক আছে, গিট না দেওয়ার আগে সঠিক কী দেখতে পারে।


5
কর্তা! আমার
ম্যাকোস

9
আপনার প্রমাণীকরণ এজেন্টের সাথে কোনও সংযোগ খুলতে পারেনি।
মোনা জালাল

এটি চালানোর চেষ্টা করুন: ইভালssh-agent -s
ভিনসেন্ট অ্যাসেন্ট

@ মোনাজালাল ব্যবহারssh-add ~/.ssh/github_rsa
অনির্বাণ নাগ 'tintinmj'

পারফেক্ট। এটা কাজ করছে। ধন্যবাদ. 👌
Erkam KUCET

62

আপনাকে একটি এসএসএইচ কী তৈরি করতে হবে (যদি আপনার কাছে না থাকে) এবং আপনার গিথুব অ্যাকাউন্টের সাথে পাবলিক কী সংযুক্ত করতে হবে। দেখুন গিটহাব নিজস্ব ডকুমেন্টেশন


2
এর জন্য ধন্যবাদ ... আমি এখন গিটহাব থেকে তৈরি একটি এসএসএইচ কী পেয়েছি। টার্মিনালে এখন দু'জনকে সংযুক্ত করতে কোন কমান্ড ব্যবহার করা হয়? ধন্যবাদ!
ওয়েবউর্কস

2
এটির জন্য কোনও টার্মিনাল কমান্ড নেই। আমি আমার উত্তরে যে ডকুমেন্টেশনটি লিঙ্ক করেছি তাতে চতুর্থ ধাপ দেখুন।
সিডিউইউইখ

আমি এইচটিটিপিএস ব্যবহার করে সংগ্রহস্থলটিকে ক্লোন করেছি। এই ক্ষেত্রে আমার কি এসএসএইচ কী তৈরি করা দরকার?
পবিত্রা ড্যাশ

@ পবিত্রড্যাশ নং এইচটিটিপিএস এসএসএইচ কী ব্যবহার করে না।
সিডিউইউই

51

এটা আমার সাথে ঘটেছিল। কিছু কারণে আমার উপলব্ধি না করেই আমার উত্সব মিশে গেল:

আপনার সেটিংস এখনও সঠিক কিনা তা পরীক্ষা করে দেখুন

git remote -v

ইউআরএলটির ssh: //git@github.com/YourDirectory/YourProject.git এর মতো কিছু হওয়া দরকার; আপনি যদি git@github.com না দেখেন তবে ব্যবহার করুন

git remote set-url origin git://github.com/YourDirectory/YourProject.git

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


9
ইউআরএলগুলি সম্পর্কে সতর্কতা অবলম্বন করুন। তারা https এবং ssh এর মধ্যে পার্থক্য করে এবং এই পৃষ্ঠার পোস্টগুলি এটিকে পরিষ্কার করে না। প্রতিটি গিট প্রকল্পের প্রকল্পের ডিরেক্টরি ডিরেক্টরিতে একটি .git / কনফিগারেশন ফাইল থাকে। সেখানে আপনি দূরবর্তী এবং শাখার তথ্য সেট করতে পারেন। Https : url = github.com/<yourGitUserName>/<YourGitProject>.git- এর জন্য রিমোট সেট করা গিট + এসএসএসের জন্য থাকাকালীন: url = git@github.com: <YourGitUserName> / <yourGitProject> .git ভুল ইউআরএল থাকার কারণে সর্বজনীন-কী অনুমতি ত্রুটি অস্বীকার করেছে যা সম্ভবত খুব পরিষ্কার ত্রুটি নয়।
darKoram

আমার ক্ষেত্রে ফাইনালের ক্ষেত্রে কেবল অংশে কাজ করে: গিট রিমোট সেট-url উত্স github.com/your_directory/your_project.git
rld

19

ধরে নিই যে আপনি গিটহাবকে এসএসএইচের সাথে সংযুক্ত করছেন, এটি নিশ্চিত করতে আপনি কমান্ডের নীচে চলতে পারেন।

$git config --get remote.origin.url

যদি আপনি কোনও ফলাফল পেতে git@github.com: xxx / xxx.github.com.git ফর্ম্যাট করে থাকেন তবে আপনার নিম্নলিখিতটি করা উচিত।

একটি এসএসএইচ কী তৈরি করুন (বা বিদ্যমান ব্যবহার করুন)। আপনার যদি একটি থাকে তবে আপনার নিজের কীটি এসএসএল-এজেন্টে (পদক্ষেপ 2) এবং আপনার গিটহাব অ্যাকাউন্টে (পদক্ষেপ 3) যুক্ত করতে হবে।

নীচে তাদের জন্য যাদের এসএসএইচ কী নেই।

পদক্ষেপ 1 জন / বেসরকারী আরএসএ কী জুড়ি উত্পন্ন করছে।

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

আপনাকে এসএসএইচ কীটি সংরক্ষণ করতে হবে এবং কোন পাসফ্রেজটি ব্যবহার করতে চান তা আপনাকে জিজ্ঞাসা করতে বলা হবে।

পদক্ষেপ 2 এসএস-এজেন্টে আপনার কী যুক্ত করুন

  • Ssh- এজেন্ট সক্ষম হয়েছে তা নিশ্চিত করুন

    $eval "$(ssh-agent -s)"

  • এসএসএইচ-এজেন্টে আপনার এসএসএইচ কী যুক্ত করুন:

    $ssh-add ~/.ssh/id_rsa

পদক্ষেপ 3 আপনার অ্যাকাউন্টে আপনার এসএসএইচ কী যুক্ত করুন

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

তারপরে অনুলিপি কীটি গিটহাবের সাথে যুক্ত করুন

সেটিংসে যান -> এসএসএইচ কী (ব্যক্তিগত সেটিংসের সাইড বার) -> এসএসএইচ কী যুক্ত করুন -> ফর্ম পূরণ করুন (কীটি আপনার ক্লিপবোর্ডে রয়েছে, কেবলমাত্র সিটিআর + ভি ব্যবহার করুন ) -> কী যুক্ত করুন

উপরের পদক্ষেপগুলি অতিক্রম করার পরে, আপনার অনুমতি সমস্যাটি সমাধান করা উচিত।

রেফারেন্স লিঙ্ক: এসএসএইচ কী তৈরি করা হচ্ছে


এই সমাধান, $ SSH-অ্যাড /root/.ssh/id_rsa উবুন্টু কাজ
Feras

এটি আমার viর্ষা সম্পর্কেও একটি অদ্ভুত গণ্ডগোলের সমাধান করেছে, একটি পরিবর্তন আমি সুপারিশ করব এক্স ক্লিপ নির্ভরতা এড়ানো, কেবল ব্যবহার করুনcat ~/.ssh/id_rsa.pub
পোগ্রিন্ডিস

19

প্রথমত, আমাদের আপনার কম্পিউটারে বিদ্যমান ssh কীগুলি পরীক্ষা করতে হবে। টার্মিনাল খুলুন এবং রান করুন:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

এবং এটি আপনার .ssh ডিরেক্টরিতে ফাইলগুলি তালিকাভুক্ত করবে

এবং অবশেষে আপনি যা দেখছেন তার উপর নির্ভর করে (আমার ক্ষেত্রে ছিল):

 github_rsa  github_rsa.pub known_hosts

কেবল আপনার আরএসএ স্থাপনের চেষ্টা করুন এবং আশা করি এটি আপনার "গিট পুশ উত্স" সমস্যাগুলি সমাধান করবে

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

দ্রষ্টব্য: আরএসএ শংসাপত্রগুলি কী-জোড়যুক্ত তাই আপনার একটি ব্যক্তিগত এবং একটি সার্বজনীন শংসাপত্র থাকবে, ব্যক্তিগত এটি আপনার জন্য অ্যাক্সেসযোগ্য হবে না কারণ এটি গিথুব সম্পর্কিত (এই ক্ষেত্রে) তবে এই ত্রুটিটি ঘটলে আপনি পাবলিক হ'ল (কমপক্ষে এটি আমার ক্ষেত্রে ছিল, আমার গিথুব অ্যাকাউন্ট বা রেপো কোনওভাবেই গণ্ডগোল পেয়েছে এবং আমাকে আগে প্রকাশিত পাবলিক কীটি "লিঙ্ক" করতে হয়েছিল)


SHAএই কমান্ড থেকে আমাকে কি গিথুবে আউটপুট অনুলিপি করতে হবে ?
ইগোরগানাপলস্কি

না, কেবল "ssh-keygen -lf exec / .ssh / <YOUR_GITHUB_RSA_FILE.pub>" সম্পাদন করুন
d1jhoni1b

এজন্য আমি একটি কমান্ডও সংযুক্ত করেছি যা "আপনার .ssh ডিরেক্টরিতে ফাইলগুলি তালিকাবদ্ধ করে" ... যাতে আপনি কী ফাইল থেকে আপনার কী (ssh-keygen) এক্সট্রাক্ট করতে পারবেন তা আপনি জানেন। মনে রাখবেন আরএসএ শংসাপত্রগুলি কী-জোড়যুক্ত তাই আপনার একটি ব্যক্তিগত এবং একটি পাবলিক শংসাপত্র থাকবে, ব্যক্তিগত এটি আপনার জন্য অ্যাক্সেসযোগ্য হবে না কারণ এটি গিথুব সম্পর্কিত (এই ক্ষেত্রে) তবে জনসাধারণ হ'ল আপনি যখন নিখোঁজ হতে পারেন তখনই এই ত্রুটি ঘটবে ( কমপক্ষে এটি আমার ক্ষেত্রে ছিল, আমার গিথুব অ্যাকাউন্ট বা রেপো কোনওভাবেই
গণ্ডগোল পেয়েছে

sh ssh-keygen -lf ~ / .ssh / github_rsa.pub /home/mona/.ssh/github_rsa.pub: এরকম কোনও ফাইল বা ডিরেক্টরি নেই
মোনা জালাল

"এই জাতীয় কোনও ফাইল বা ডিরেক্টরি" এর অর্থ আপনার কাছে সেই ফাইলটির নাম বা পথ নেই ... ls -al। / .Ssh চালানোর সময় আপনি কী পাবেন?
d1jhoni1b

14

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

প্রথমে আমি ভেবেছিলাম এটি ছিল "ম্যাকোস সিয়েরাতে আপগ্রেড করা আপনার এসএসএইচ কীগুলি ভেঙে দেবে এবং আপনাকে নিজের সার্ভার থেকে লক আউট করবে"

তবে আমি সেটিকে ছাড়িয়েছিলাম। দেখা যাচ্ছে আমাকে সবেমাত্র আমার বিদ্যমান কীটি পুনরায় নিবন্ধন করতে হয়েছিল:

ssh-add -K

এবং পাসফ্রেজ টাইপ করুন ... সম্পন্ন!


2
একই ইস্যুটি, আমার জন্য কাজ করেছে:-ssh-add -K ~ / .ssh / id_rsa `
mvladk

11

আরেকটি সমাধান:

এসএসএইচ কী তৈরি করুন, টাইপ করুন ssh-keygen -t rsa -C "your_email@example.com"। এটি id_rsa এবং id_rsa.pub ফাইল উভয় তৈরি করবে।

স্থানীয় কম্পিউটারে এসড তালিকাতে id_rsa যুক্ত করুন: ssh-add ~/.ssh/id_rsa.

কীগুলি উত্পন্ন করার পরে পাবকিটি ব্যবহার করে পান:

cat ~/.ssh/id_rsa.pub 

আপনি কিছু পাবেন:

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== user@email.com

এই কীটি (মান) অনুলিপি করুন এবং github.com এ যান এবং সেটিং এর অধীনে (ssh এবং pgp কী) আপনার সর্বজনীন কী যুক্ত করুন।


10

আপনি যদি নিজের নিজস্ব সংগ্রহস্থল অ্যাক্সেস না করছেন বা ক্লোন করা সংগ্রহস্থলের অভ্যন্তরে ক্লোনিং করছেন (কিছু "গিট সাবমডিউল ..." কমান্ড ব্যবহার করছেন):

আপনার সংগ্রহস্থলের হোম ডিরেক্টরিতে:

$ ls -a

1. ".gitmodules" খুলুন এবং আপনি এর মতো কিছু পাবেন:

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

আপনার টানতে হবে এমন সংগ্রহস্থলের HTTPS হতে শেষ লাইনটি পরিবর্তন করুন :

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

".Gitmodules" সংরক্ষণ করুন , এবং সাবমডিউলগুলির জন্য কমান্ড চালান , এবং ".git" আপডেট হবে।

".Git" খুলুন, "কনফিগারেশন" ফাইলটিতে যান এবং আপনি এর মতো কিছু পাবেন:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = git@github.com:YYY/XXX.git

আপনার টানতে হবে এমন সংগ্রহস্থলের HTTPS হতে শেষ লাইনটি পরিবর্তন করুন :

    url = https://github.com/YYY/XXX.git

সুতরাং, এই ক্ষেত্রে, মূল সমস্যাটি কেবল ইউআরএল নিয়ে। যে কোনও সংগ্রহস্থলের এইচটিটিপিএস এখন পাওয়া যাবে সংগ্রহের পৃষ্ঠার শীর্ষে।


9

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

1- সমস্ত উত্স সরান

git remote rm origin  

(সিএফ। https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

* রিমোট: "আপনি যে শাখাগুলি ট্র্যাক করেন সেগুলি সংগ্রহস্থলের সেট (" রিমোট ") পরিচালনা করুন।

* আরএম: "নামকৃত রিমোট সরান।

2- সমস্ত সরানো হয়েছে তা পরীক্ষা করুন:

git remote -v  

3- নতুন উত্সের মাস্টার যুক্ত করুন

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

এই সব লোকেরা!


1
এটি সহায়ক ছিল these এই কমান্ডগুলির সাহায্যে এটি আমাকে গিথুব ব্যবহারকারীর নাম এবং অ্যাকাউন্টের পাসওয়ার্ড জিজ্ঞাসা করতে শুরু করে, তারপরে আমি টার্মিনালটিতে সহজেই গিথুব লিঙ্কটি চাপতে পারি: গিট পুশ-ই উত্স মাস্টার
নোহা সালাহ

8

ssh-add -lআপনার গিথুব অ্যাকাউন্টে এসএসএইচ কীগুলির তালিকায় উপস্থিত একটি এসএসএইচ কীটির আঙুলের ছাপটি নিশ্চিত করে তা নিশ্চিত করুন ।

যদি আউটপুট খালি থাকে তবে আপনি জানেন যে আপনার একটি ব্যক্তিগত এসএসএইচ কী রয়েছে যা আপনার গিথুব অ্যাকাউন্টের সাথে কাজ করে, ssh-addএই কীটি চালান (এটি পাওয়া গেছে ~/.sshIt's এটির নাম id_rsaডিফল্ট হিসাবে দেওয়া হয়েছে, সুতরাং আপনি সম্ভবত চালাবেন ssh-add id_rsa)।

অন্যথায়, এসএসএইচ কী জুড়ি উত্পন্ন করতে এই নির্দেশাবলী অনুসরণ করুন ।


8

আমি আমার পিএইচপি প্রকল্পের আগে গিথুবটি ব্যবহার করছিলাম। গিথুব ব্যবহার করার সময়, আমি https এর পরিবর্তে ssh ব্যবহার করছিলাম। আমার মেশিনটি এমনভাবে সেট আপ করা হয়েছিল এবং যতবারই আমি কোডটি প্রতিশ্রুতিবদ্ধ বা ধাক্কা দিতাম, তখন এটি আমার আরএসএ কী পাসওয়ার্ড জিজ্ঞাসা করবে।

কিছু দিন পরে, আমি পিএইচপি প্রকল্পে কাজ করা বন্ধ করে দিয়ে আমার আরএসএ পাসওয়ার্ড ভুলে গিয়েছিলাম। সম্প্রতি, আমি একটি জাভা প্রকল্পে কাজ শুরু করে বিটবাকেটে চলে এসেছি। যেহেতু, আমি পাসওয়ার্ডটি ভুলে গিয়েছিলাম এবং এটি অনুমান করার কোন উপায় নেই , তাই আমি নতুন প্রকল্পের জন্য https (প্রস্তাবিত) প্রোটোকলটি ব্যবহার করার সিদ্ধান্ত নিয়েছি এবং প্রশ্নটিতে একই ত্রুটি জিজ্ঞাসা করা হয়েছে।

আমি কীভাবে এটি সমাধান করেছি?

  1. আমার গিটকে ssh এর পরিবর্তে https ব্যবহার করতে বলতে এই আদেশটি চালান:

    git config --global url."https://".insteadOf git://
    
  2. যেকোন রিমোট সরিয়ে ফেলুন

    git remote rm origin
    
  3. গিট থ্রি থেকে গিট পুশ পর্যন্ত সবকিছু আবার করুন এবং এটি কার্যকর!

পিএস: ডিবাগ প্রক্রিয়া চলাকালীন আমি আমার মেশিন থেকে এসএসএস আন-ইনস্টল করে এই ভেবেছিলাম যে, এটি অপসারণ করলে সমস্যার সমাধান হবে। হ্যা আমি জানি!! :)


আমি মনে করি না যে লোকেদের https এর দিকে নির্দেশ করা ভাল ধারণা, যখন এসএসএসও কাজ করার কথা। তদুপরি, কর্পোরেট প্রক্সি পিছনে লোকের পক্ষে এটি কাজ করার সম্ভাবনা নেই।
ইগোর স্টপপা

8

আপনি যদি দূরবর্তী সংগ্রহস্থলের https অ্যাক্সেসে ssh অ্যাক্সেস পরিবর্তন করেন তবে সমস্যার সমাধান হয়েছে:

git remote set-url origin https_link_to_repository

git push -u origin master

5

আমি মনে করি আপনার কাছে আমার সেরা উত্তর রয়েছে, আপনার গিট অ্যাপ্লিকেশনগুলি আপনার ব্যবহারকারীর ডিরেক্টরিতে id_rsa.pub পড়ে

/home/root/.ssh/id_rsa.pub

এজন্য আপনার / home/your_username/.ssh/id_rsa.pub এ কীটি গিট দিয়ে পড়া যায় না। সুতরাং আপনার /home/root/.ssh/ এ কী তৈরি করতে হবে

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

তারপরে আপনার গিথব অ্যাকাউন্টে কীটি অনুলিপি করুন। এটা আমার জন্য কাজ। আপনি চেষ্টা করতে পারেন.


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

4

আপনি যদি ইতিমধ্যে একটি এসএসএইচ কী তৈরি করেছেন এবং এখনও ত্রুটিটি পাচ্ছেন তবে এটি হ'ল কারণ আপনি যে ফোল্ডারে ক্লোনিং করছেন সেটিকে পড়তে এবং লিখতে আপনাকে ব্যবহারকারীকে অনুমতি দেওয়া দরকার। এটি করতে sudo chmod 777 <your_folder_name_here>",। অবশ্যই আপনি এসএসএইচ কী তৈরি করার পরে এবং আপনি এখনও এই ত্রুটি পেয়ে যাচ্ছেন। আশা করি এটি ভবিষ্যতের ব্যবহারকারীদের সহায়তা করবে।

সম্পাদন করা

উইন্ডোতে এই ব্যবহারের প্রশাসকে যুক্ত করতে যদি আপনি গিট ব্যাশ ব্যবহার করেন


এই. এটিও সমস্যার কারণ হতে পারে।
কেভিনও

1
এটি আমার সমস্যা ছিল তবে আমি কোনও ফোল্ডারে 777 অনুমতি সেট করার পরামর্শ দেব না। আমার ক্ষেত্রে ফোল্ডারটি মূল ব্যবহারকারীর মালিকানাধীন ছিল এবং আমার এটি আমার অ-রুট ব্যবহারকারী অ্যাকাউন্টে অ্যাক্সেস দেওয়ার দরকার ছিল। আমি এটি এর মতো করে করেছি:sudo chown -R $USER:$USER <your_folder_name_here>
ডেভিড

@ ডেভিড, আমি এটিও সুপারিশ করি। 777 বেশ হ্যাকি এবং সুরক্ষিত নয়।
কেভিন

3

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

টার্মিনাল থেকে, চালান: ssh-add ~/.ssh/id_rsa

আপনার সিস্টেমের পাসওয়ার্ড দিন এবং এটি কাজ করা উচিত।


3

আমি আমার কিছু অনুসন্ধান যুক্ত করতে চাই:

আপনি যদি ব্যবহার করছেন GitBashতবে নিশ্চিত হয়ে নিন যে এসএসএইচ কীটি সঞ্চিত আছে ~/.ssh/id_rsa

ডিফল্ট দ্বারা এসএসএইচ কী এর জন্য ডিফল্ট পথ হিসাবে GitBashঅনুসন্ধান করে ~/.ssh/id_rsa

এমনকি ফাইলের নামটিও id_rsaগুরুত্বপূর্ণ। যদি আপনি নিজের এসএসএইচ কীটি অন্য কোনও ফাইলের নাম বা পথে সংরক্ষণ করেন তবে এটি Permission Denied(publickey)ত্রুটিটি ছুঁড়ে দেবে ।


3

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

  • আপনার কীগুলি উপস্থিত রয়েছে তা নিশ্চিত করুন, ডিফল্টরূপে অন্য একটি ~ / .ssh / ফোল্ডার, অর্থাৎ id.rsa এবং id.rsa.pub

  • কীগুলির সঠিক অনুমতি আছে তা নিশ্চিত করুন, আপনি chmod চালাতে পারেন:

    chmod 600 ~ / .ssh / id_rsa

    chmod 644। / .ssh / id_rsa.pub

  • আপনার সার্বজনীন কী (id_rsa.pub) এর সামগ্রীটি দূরবর্তী সংগ্রহস্থল কনফিগারেশনে আপলোড হওয়াটির সাথে মেলে কিনা তা নিশ্চিত করুন

  • অবশেষে ssh এজেন্টের সাথে সমস্যার সমাধান করুন: ssh-add

আরও কিছু তথ্য: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html


আমি FAT32 হিসাবে ফর্ম্যাটেড ইউএসবি ড্রাইভ ব্যবহার করে একটি কম্পিউটার থেকে অন্য কম্পিউটারে আমার এসএস কী অনুলিপি করেছিলাম। এটি ফাইলগুলির অনুমতিগুলি পরিবর্তন করেছে। উবুন্টুতে, আমি যখন প্রয়োজন হয় তখন স্বয়ংক্রিয়ভাবে এসএসএইচ পাসওয়ার্ড চাইবে বলে অভ্যস্ত, তবে chmodআপনার বর্ণনার মতো আমি দৌড়ে না যাওয়া পর্যন্ত নিঃশব্দে তা ঘটেনি । ধন্যবাদ।
লাইডেল

1

আপনি যদি ম্যাক ইউআইয়ের গিটহাব ব্যবহার করছেন তবে আপনি লগ ইন করেছেন তা নিশ্চিত করতে পছন্দগুলি পরীক্ষা করুন।


1

'গিট পুশ' চলাকালীন আমিও একই ত্রুটি পেয়েছিলাম। ক্লায়েন্ট সাইডে আমার দুটি উত্স এবং মাস্টার ছিল। আমি একটি অপসারণ, তারপর এটি ঠিক আছে।


1

আপনি লগইন করতে এইচটিপিএস ইউআরএল ব্যবহার করতে পারেন

আমি অনুমান করি আপনি যখন এসআইটি ইউআরএল দিয়ে লগইন করার চেষ্টা করছেন আপনি যখন গিট পুশ বলে থাকেন তবে কেবলমাত্র পাসওয়ার্ড জিজ্ঞাসা করার বিষয়টি বিবেচনা করে আপনি ssh.better এর মাধ্যমে সংযোগ করছেন তা আপনি HTTP url ব্যবহার করেন।


1

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

sudo git push origin master

কেন তা নিশ্চিত নয় তবে এটি ব্যবহার করে সমাধান হয়ে গেছে

git push origin master

কোনও সুডো ব্যবহার করা হয়নি।


1

আমার জন্য আমি এটি চেষ্টা করেছিলাম -

eval "$(ssh-agent -s)"

তাহলে আমি দৌড়াচ্ছি

ssh-add ~/.ssh/path-to-the-keyfile

এবং কী চালানোর জন্য আপনি চালাতে পারেন

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

এটি কীগুলির জুড়ি তৈরি করবে (সরকারী এবং ব্যক্তিগত)।

আরও পড়ার জন্য আপনি এই কীটি গিথুবে সংরক্ষণ করতে পারেন এটি পড়ার জন্য আপনার গিটহাব অ্যাকাউন্টে একটি নতুন এসএসএইচ কী যুক্ত করা হচ্ছে

আমি আশা করি এটি অন্যকে সহায়তা করবে :)


1

@ ব্যাটম্যানের সাথে আমারও একই সমস্যা ছিল। তবে, যেহেতু আমি এটি / usr / স্থানীয় / src / প্রোজেক্টনামের অধীনে চালাচ্ছি, sudo ছাড়া চালানো কোনও বিকল্প ছিল না।

পরিবেশটি প্রিভেট করার জন্য কেবল -E পতাকা যুক্ত করুন (আপনার ~ / .ssh / পাথ)।

$ sudo -E git clone git@your_repo

ম্যান সুডোর কাছ থেকে:

-E, - preser-env সুরক্ষা নীতিতে ইঙ্গিত করে যে ব্যবহারকারী তাদের বিদ্যমান পরিবেশের ভেরিয়েবলগুলি পরিবেশন করতে চান। পরিবেশ সংরক্ষণের জন্য যদি ব্যবহারকারীটির অনুমতি না থাকে তবে সুরক্ষা নীতি একটি ত্রুটি ফিরিয়ে দিতে পারে।


1

আপনি যখন আপনার সংগ্রহশালা তৈরির পরে গিটহাবের নির্দেশাবলী অনুসরণ করেন তখন এটি ঘটবে এমন দৃশ্যাবলী। গিট আপনাকে এরকম কিছু দিয়ে আপনার রিমোট যুক্ত করতে নির্দেশ দেবে।

git remote add origin git@github.com:<user>/<project>.git

আপনার অ্যাকাউন্টের সাথে সম্পর্কিত মানগুলির সাথে <> যা রয়েছে তাতে প্রতিস্থাপন করুন।

সমাধানটি .gitপ্রত্যয়টি সরানো । নীচে রিমোট যুক্ত করুন:

git remote add origin git@github.com:<user>/<project>


1

TL; ড

মধ্যে ~/.ssh/configরাখা

PubkeyAcceptedKeyTypes=+ssh-dss

পরিস্থিতি যদি আপনি ওপেনএসএসএইচ> 7 এর কোনও সংস্করণ ব্যবহার করেন তবে কোনও টাচবার ম্যাকবুক প্রোতে বলুন likessh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

আপনার কাছে একটি পুরানো ম্যাক ছিল যা মূলত আপনার চাবিটি গিথুবকে রেখেছিল, এটি একটি id_dsa কী ব্যবহার করা সম্ভব। ওপেনএসএসএইচ ভি 7 ডিফল্টরূপে এই ডিএসএ কীগুলি ব্যবহার করে না (এতে এটি অন্তর্ভুক্ত রয়েছে ssh-dss), তবে আপনি নীচের কোডটি নিজের মধ্যে রেখে এটি আবার যুক্ত করতে পারেন~/.ssh/config

PubkeyAcceptedKeyTypes=+ssh-dss

উত্স যা আমার পক্ষে কাজ করেছে এটি হ'ল জেন্টু নিউজলেটার

এখন আপনি কমপক্ষে গিটহাব ব্যবহার করতে পারেন এবং তারপরে আপনার কীগুলি আরএসএতে ঠিক করুন।


1

git pullদূরবর্তী হোস্টে ব্যবহার করে অনুরূপ ত্রুটি বার্তার সমাধান খুঁজতে গিয়ে আমি এই পৃষ্ঠাটি পেয়েছি :

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

আমি আমার লোকাল মেশিন থেকে দূরবর্তী হোস্টের মাধ্যমে সংযুক্ত ছিলাম ssh -AY remote_hostname। এটি ওপির প্রশ্নের সমাধান নয়, তবে এই পৃষ্ঠাটি জুড়ে আসা অন্যদের জন্য দরকারী, সুতরাং এটি এখানে পোস্ট করুন।

মনে রাখবেন যে আমার ক্ষেত্রে, git pullআমার স্থানীয় মেশিনে সূক্ষ্মভাবে কাজ করে (এটি, ssh কী সেটআপ করা হয়েছিল এবং গিটহাব অ্যাকাউন্টে যুক্ত হয়েছিল ইত্যাদি)। আমি ~/.ssh/configআমার ল্যাপটপে এটি যুক্ত করে আমার সমস্যাটি সমাধান করেছি :

Host *
     ForwardAgent yes

এরপরে আমি রিমোট হোস্টের সাথে আবার সংযুক্ত হয়েছি ssh -AY remote_hostnameএবং git pullএখন কাজ করেছি। কনফিগারেশনের পরিবর্তনটি আমার স্থানীয় মেশিন থেকে যে কোনও হোস্টে আমার এসএস কেপাইয়ারটি ফরোয়ার্ড করতে সক্ষম করে। -Aবিকল্প sshযে SSH সেশনে আসলে সামনে এটা। আরও বিশদ এখানে দেখুন।


0

হতে পারে আপনার ssh- এজেন্ট সক্ষম নয় আপনি এটি চেষ্টা করতে পারেন

  1. গিট ডাউনলোড করুন

http://git-scm.com/

  1. এটি ইনস্টল করুন

  2. Ssh- এজেন্ট সক্ষম করুন

সি: \ প্রোগ্রাম ফাইল \ গিট \ সেমিডি

স্টার্ট SSH-এজেন্ট


0

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

cat ~/.ssh/id_rsa.pub | pbcopy 

এটি আপনার id_rsa.pub ফাইল থেকে কীটি অনুলিপি করবে। সুতরাং কেবল গিটহাব ড্যাশবোর্ডে ফিরে যান, এটি আটকান, কী যুক্ত করুন ক্লিক করুন এবং এটিই।

একই সমাধান বিটবকেট অ্যাকাউন্টগুলিতে প্রযোজ্য।

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