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


134

আমার সমস্যা হ'ল আমি গিটল্যাব থেকে চাপ বা আনতে পারছি না। তবে, আমি ক্লোন করতে পারি (এইচটিটিপি বা এসএসএইচ এর মাধ্যমে)। আমি চাপ দেওয়ার চেষ্টা করার সময় আমি এই ত্রুটিটি পেয়েছি:

অনুমতি অস্বীকার করা হয়েছে (পাবলিককি) মারাত্মক: দূরবর্তী সংগ্রহস্থল থেকে পড়া যায়নি

আমি যে সমস্ত থ্রেড দেখেছি সেগুলি থেকে, আমি যা করেছি তা এখানে:

  • আমার কম্পিউটারে একটি এসএসএইচ কী সেট আপ করুন এবং গিটল্যাবে পাবলিক কী যুক্ত করুন
  • ব্যবহারকারীর নাম এবং ইমেলের জন্য কনফিগার - গ্লোবাল সম্পন্ন করে
  • এটি সমস্যার সমাধান করবে কিনা তা পরীক্ষা করতে এসএসএইচ এবং এইচটিটিপি এর মাধ্যমে ক্লোন করা
  • Ssh -T git@gitlab.com কমান্ডটি সম্পন্ন করে

আমার সমস্যাটি কীভাবে সমাধান করবেন সে সম্পর্কে আপনার যদি অন্তর্দৃষ্টি থাকে তবে এটি প্রশংসিত হবে।


5
ssh -vvvv git@gitlab.comএটি এসএসএইচ কীটি তুলে নিয়েছে কিনা তা দৌড়ে যান
নীলস ওয়ার্নার

1
আপনি কি gitlab.com/profile/keys এর মাধ্যমে এসএসএইচ কী যুক্ত করেছেন ?
আকরাম ফরেস

@ নীলস ওয়ার্নার: আমি যখন এই আদেশটি করি তখন আমি অনেকগুলি লাইন পাই, তবে তার মধ্যে একটি "প্রমাণীকরণ সাফল্য পেয়েছে (পাবলিককি)"
আলেকজান্ডার ফার্নান্দেস বার্তোলোমিউ

4
নিশ্চিত হয়ে নিন যে আপনি চলছে না sudo git clone git@gitlab.com:project/somethiing.git, অন্যথায় /root/.sshআপনার আপলোড করা কীটির পরিবর্তে ~/.ssh/id_rsa
এসএসএস

1
আমি "ssh-add ~ / .ssh / the_key" এর মাধ্যমে এজেন্টে একটি কী যুক্ত করে সেই শব্দটি বাক্য অনুসারে তাদের অনুমোদনের মাধ্যমে একই সমস্যাটি সমাধান করেছি। এটি আমি গিটল্যাবে যা যুক্ত করেছি তার ব্যক্তিগত অংশ।
Celdor

উত্তর:


257

অনেক খোঁজাখুঁজির পরে আমি এটি পেয়েছি। এটা আমার জন্য পুরোপুরি সূক্ষ্ম কাজ করবে।

  1. "গিট বাশ" এ যান ঠিক সেমিডির মতো। ডান ক্লিক করুন এবং "প্রশাসক হিসাবে চালান"।
  2. আদর্শ ssh-keygen
  3. টিপুন.
  4. এটি আপনাকে নির্দিষ্ট ডিরেক্টরিতে কীটি সংরক্ষণ করতে বলবে।
  5. টিপুন. এটি আপনাকে পাসওয়ার্ড টাইপ করতে বা পাসওয়ার্ড ছাড়াই প্রবেশ করার অনুরোধ জানাবে।
  6. সর্বজনীন কী নির্দিষ্ট ডিরেক্টরিতে তৈরি করা হবে।
  7. এখন ডিরেক্টরিতে যান এবং .sshফোল্ডার খুলুন ।
  8. আপনি একটি ফাইল দেখতে পাবেন id_rsa.pub। এটি নোটপ্যাডে খুলুন। এটি থেকে সমস্ত পাঠ্য অনুলিপি করুন।
  9. Https://gitlab.com/profile/keys এ যান ।
  10. "কী" পাঠ্যক্ষেত্রে এখানে আটকান।
  11. এখন নীচে "শিরোনাম" ক্লিক করুন। এটি স্বয়ংক্রিয়ভাবে পূরণ করা হবে।
  12. তারপরে "কী যুক্ত করুন" ক্লিক করুন।

এখন এটি একটি শট দিন এবং এটি নিশ্চিতভাবে কাজ করবে।


2
যদি আপনি ক্লিপবোর্ডে পাব ফাইলটি অনুলিপি করতে হারিয়ে যান। নিম্নলিখিত চেষ্টা করুন:type %userprofile%\.ssh\id_rsa.pub | clip
jquijano

5
উইন্ডোজ 10-এ আপনার যদি দরকার হয় তবে .ssh \ id_rsa.pub আপনি এই বিড়ালটি টাইপ করতে পারেন / / .ssh / id_rsa.pub গিট ব্যাশে এটি "কী" দেখায়, তাই আপনি এটি অনুলিপি করে পাঠ্য ক্ষেত্রে আটকে দিতে পারেন মধ্যে gitlab.com/profile/keys
Chutipong Roobklom

11
এটি নিশ্চিত করুন: ssh-add filenameউপরের পদক্ষেপগুলি অনুসরণ করার পরে
আরএসএসএ

3
কবজির মতো কাজ করেছেন। ধন্যবাদ।
ব্রুকিয়া

3
আমি এটি করেছি, সমস্যা স্থির নয়, অনুমতিগুলি অস্বীকার করা হচ্ছে
বিল্লাল বেগেরাদজ

62

পদক্ষেপ 1: ~/.ssh/configদেখে মনে হচ্ছে এমন একটি কনফিগার ফাইল ফাইলে যুক্ত হয়েছে

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

পদক্ষেপ 2: সুডো ছাড়া গিট রেপোটিকে কেবল ক্লোন করুন।
ডকুমেন্টেশন: https://gitlab.com/help/ssh/README#working-with-non-default-ssh-key-pair-paths


1
যদি ডিফল্ট নামের কী-ফাইলটি ইতিমধ্যে বিভিন্ন উদ্দেশ্যে ব্যবহৃত হয় তবে এটি প্রয়োজনীয়। আপনি যদি id_rsa_gitlabফেডোর উদাহরণের মতো অ-ডিফল্ট নাম সহ কোনও কী-ফাইল তৈরি করে থাকেন তবে আপনাকে একটি কনফিগার-ফাইল সরবরাহ করতে হবে। বিষয়টি সম্পর্কে গীতলাবের চমৎকার নিবন্ধ: gitlab.com/help/ssh/…
ড্যানি

এটি আমার পক্ষে কাজ করেছে। আমার কাছে গিথুব এবং গীতলাব কী উভয়ই ছিল, যাতে আপনি এই সমাধানটির জন্য।
এমকশ

এই কাজটি করতে আমাকে বদলাতে HostnameহবেHost
সাদী

27

আমি মনে করি সহজ সমাধান হ'ল প্রমাণীকরণ এজেন্টে ব্যক্তিগত কী যুক্ত করা (যদি আপনার কীটি না থাকে ~/.ssh/id_rsa),

ssh-add ~/.ssh/<your private key>

আপনি মূলত ssh-agentএটি যত্ন নিতে দিন ।

অতিরিক্তভাবে, আপনি এটি স্থায়ীভাবে যুক্ত করতে পারেন ।


এটি এক্সটেনশন .pub সহ ফাইল
ফিলিপ

7
না। প্রাইভেট কীটি .pubএক্সটেনশন ছাড়াই ফাইল ।
হুসেন

15

আমার ক্ষেত্রে এটি ডাব্লুএসএল (লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম) তে কাজ করেনি।

আমি যখন ডাব্লুএসএল শুরু করি তখন অবশ্যই আমার উচিত

  • এসএসএল-এজেন্ট_আর শুরু করুন eval $(ssh-agent -s)
  • এস-এস-এজেন্টে কীটি যুক্ত করুন: ssh-add ~/.ssh/id_rsa
  • যদি অনুরোধ করা হয় তবে পাসওয়ার্ডটি প্রবেশ করান

এখন সংযোগ কাজ করে।
আমরা এটি দিয়ে পরীক্ষা করতে পারিssh -T git@github.com

মন্তব্য:


11

নিশ্চিত হয়ে নিন যে আপনি চলছে না sudo git clone git@gitlab.com:project/somethiing.git, অন্যথায় /root/.sshআপনার আপলোড করা কীটির পরিবর্তে এসএসএস সন্ধান করবে~/.ssh/id_rsa


9

এটির একটি খুব সহজ সমাধান রয়েছে: এসএসএস নিয়ে কাজ করার পরিবর্তে - https এ যান। এটি করার জন্য: আপনার প্রকল্প ফোল্ডারে আপনার সেখানে একটি .git ফোল্ডার রয়েছে - আপনার কাছে একটি কনফিগার ফাইল রয়েছে - এটি একটি পাঠ্য সম্পাদককে খুলুন এবং লাইনটি পরিবর্তন করুন

url =git@gitlab.com: yourname / yourproject.git

প্রতি

url = https://gitlab.com/yourame/yourproject.git


ধন্যবাদ. আমার জন্য কাজ করেছেন।
কেটিভি 6

7

আপনি যদি লিনাক্স বা ম্যাকক্সে থাকেন তবে কেবল টার্মিনালে এটি ব্যবহার করে দেখুন:

ssh-add -l

যদি এটি কিছুই না ফেরায় তবে চেষ্টা করুন:

ssh-add

এটি অবশ্যই ~ / .ssh / id_rsa- এ পরিচয় তৈরি করতে হবে

পুনরায় চেষ্টা করার পরে:

ssh-add -l

এটি অবশ্যই আপনার পরিচয় ফিরিয়ে দেবে, তাই ক্লোন করতে আবার চেষ্টা করার পরে এটি অবশ্যই কাজ করবে

এনবি: আপনার প্রোফাইল গিটল্যাবে আপনার এসএসএস কী যুক্ত করতে ভুলবেন না

ধন্যবাদ


5

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

আপনি নিজের এসএস সার্ভার কনফিগারেশনটি চেক করতে পারেন /etc/ssh/sshd_config। বিকল্পের সাথে যদি আপনার একটি লাইন থাকে AllowUsersতবে এতে গিট যুক্ত করুন:

AllowUsers user1 user2 user3 git

3

আমার কাছে ডকির সাথে গিটল্যাব চলছে, আমার সমস্যা সমাধানের জন্য এটিই আমি করেছি।

খুঁজে পাওয়া গেল যে ডকার / ভার / লগ / গিটল্যাব / এসএসডি / বর্তমানের ভিতরে একটি বার্তার একাধিক উপস্থিতি রয়েছে:

প্রমাণীকরণ অস্বীকার করেছে: খারাপ মালিকানা বা ফাইল /var/opt/gitlab/.ssh/authorised_keys জন্য মোড

যা আমি থেকে যে ফাইল মালিকানা পরিবর্তিত 99: ব্যবহারকারীরা করার ব্যবহারকারী: Git সঙ্গে

গাউন গিট: ব্যবহারকারীরা অনুমোদিত_কিজ


1
তোমাকে অনেক ধন্যবাদ. আমি কুবেরনেটসে গিটল্যাব চালাচ্ছি এবং / গিটল্যাব-ডেটা ডিরেক্টরি (যা অনুমোদিত_কিগুলির জন্য মাউন্টপয়েন্টও রয়েছে) এর অনুমতি সমস্যা ছিল। একটি সাধারণ শাবক যথেষ্ট ছিল।
দিল্লেন মাইজবুম

3

পদক্ষেপগুলি করতে হবে, একই ত্রুটি পেয়েছে তবে আমি এটি ঠিক করেছি fixed গিটল্যাব ssh-rsa চায় তাই আরএসএর জন্য ssh চালানোর কোডটি নীচে

  1. ssh-keygen -o -t rsa -b 4096 -C "name@gmail.com"

name@gmail.com হ'ল আপনার গিটল্যাব অ্যাকাউন্ট ইমেল

  1. এটি আপনাকে প্রবেশের অনুরোধ জানাবে তাই নীচের কোডটি প্রম্পট হওয়ার পরে কেবল এন্টার টিপুন,

    কী (/ home/yourDesktopName/.ssh/id_rsa) সংরক্ষণ করতে ফাইল প্রবেশ করুন:

  2. এটি আপনাকে আবার প্রবেশের অনুরোধ জানাবে তাই নীচের কোডটি প্রম্পট হওয়ার পরে কেবল এন্টার টিপুন,

    পাসফ্রেজ প্রবেশ করুন (কোনও পাসফ্রেজের জন্য খালি নয়):

  3. এটি আপনাকে শেষ প্রবেশের জন্য আবার অনুরোধ জানাবে তাই নীচের কোডটি প্রম্পট হওয়ার পরে কেবল এন্টার টিপুন,

    আবার একই পাসফ্রেজ লিখুন:

  4. আপনি আপনার ssh-rsa জেনারেট দেখান।

  5. আপনার গিটল্যাব অ্যাকাউন্টে লগইন করুন এবং ডান নববারে যান আপনি সেটিংস পাবেন এবং বাম পাশের বারে আপনি এসএসসি পাবেন। এটি প্রবেশ করান।

  6. আপনাকে প্রবেশ করতে বলার অনুরোধটির উপরে দেখুন, আপনি ssh-rsa এর পাথ পাবেন।

  7. আপনার এসএসএইচ ফোল্ডারে যান এবং id_rsa.pub পান

  8. এটি খুলুন এবং কীটি পান এবং গিটল্যাবে অনুলিপি করুন এবং আপনার কাজ প্রায় শেষ।

  9. দ্বারা পরীক্ষা: ssh -T git@gitlab.com

  10. তুমি পাবে: Welcome to GitLab, @joy4!

  11. সম্পন্ন.


ধন্যবাদ। এটি উইন্ডোজ 10 এ কাজ করে I
ডিকা

এই উত্তরটি বেশ ভাল - কেন এটি বেশি ভোট দেয় তা নিশ্চিত নন।
এমজিবিসন

3

আগে এটি আমার পক্ষে খুব কঠিন ছিল তবে আমি যখন চেষ্টা করেছিলাম তখন ম্যাক এবং লিনাক্সে এসএসএস কী যুক্ত করা এত সহজ হয়ে গেল। এটি করার জন্য কয়েকটি পদক্ষেপ এবং আদেশ রয়েছে:

  1. আপনার সিস্টেমের একটি টার্মিনাল খুলুন এবং কমান্ড দ্বারা আপনার প্রকল্প ডিরেক্টরিতে সরান:
cd 'project directory name'
  1. ssh-keygenসেই টার্মিনালে কমান্ড চালান এবং কীটির র্যান্ডোমার্ট চিত্রটি উপস্থিত না হওয়া পর্যন্ত এটি প্রবেশ করুন।

  2. তারপরে সেই টার্মিনালে আরও একটি কমান্ড লিখুন:

cat ~/.ssh/id_rsa.pub

এটি আপনার ssh কী উত্পন্ন করবে। কী দিয়ে শুরু হবে ssh-rsaএবং শেষ হবে .local

  1. কীটি অনুলিপি করুন এবং আপনার গিটলব প্রোফাইল বিভাগে যান তারপরে ssh keyবিভাগে এবং এটি আটকে দিন। Addবোতামটি ক্লিক করুন এটি কাজ করবে।

এই আমার জন্য কাজ! ধন্যবাদ
শমসির আহমাদ

2

আমার একই সমস্যা ছিল, আমি একটি নতুন ssh কী যুক্ত করে এটি সমাধান করেছি:

  1. ssh-keygen -t ed25519 -C "email@example.com"
  2. ক্লিপবোর্ডে আপনার সর্বজনীন এসএসএইচ কীটি অনুলিপি করুন ( xclip -sel clip < ~/.ssh/id_ed25519.pubলিনাক্সে আমার ক্ষেত্রে)
  3. গিটল্যাবে, কীগুলিতে যান settings=>sshএবং নতুন কীটি পাস করুন

2

যখন আপনার একাধিক গিট অ্যাকাউন্ট থাকে এবং আপনি আলাদা এসএস কী ব্যবহার করতে পারেন

Ssh কী উত্পন্ন করার জন্য আপনাকে একই পদক্ষেপ অনুসরণ করতে হবে তবে আপনি নিশ্চিত হন

ssh-keygen -t ed25519 -C "your-email-id@gmail.com" 

আপনি যে পথটি সংরক্ষণ করতে চান তা প্রবেশ করুন (উদা: আমার-পিসি / ডেস্কটপ / .এসএসএইচ / এডি 25519)

আপনার গিটল্যাবে পাবলিক কী যুক্ত করুন (গিটল্যাজে ssh কী কীভাবে যুক্ত করবেন )

নীচের কমন্ড ব্যবহার করে আপনাকে নতুন এসএসআই পরিচয় দিতে হবে

ssh-add ~/my-pc/Desktop/.ssh/ed25519

2

মূলত দুটি জিনিস

  1. আপনার .ssh ফোল্ডারে আপনার id_rsa.pub এবং id_rsa (বেসরকারী) কী থাকতে হবে (যা আপনার বাড়ির ফোল্ডারে থাকা উচিত it এটিতে কীগুলি না থাকলে এটি তৈরি করুন)। আপনি যদি আপনার কী ফাইলগুলি আলাদাভাবে নাম দিয়ে থাকেন তবে এটি কাজ করবে না

  2. Chmod 400 ~ / .ssh / id_rsa হিসাবে id_rsa এর অনুমতি পরিবর্তন করুন


2

এই আচরণের কারণ হতে পারে এমন আরেকটি সমস্যা হ'ল আপনি যখন 2 সম্ভাব্য% হোম%-লোকেশন সহ একটি সেটআপ করেন।

আমি একটি পিসি ব্যবহার করছি যেখানে আমার কিছু নথি স্থানীয়ভাবে সঞ্চয় করা আছে এবং সেগুলির কয়েকটি নেটওয়ার্ক ড্রাইভে সঞ্চয় করা হয়েছে। কিছু অ্যাপ্লিকেশন মনে C:\Users\<MyUserName>\হয় আমার %home%, অন্যেরা মনে করে যে U:\এটিই বাড়ি।

পরিণত হয় ssh-keygenআমার প্রাইভেট কীটি নীচে রাখে C:\users\<MyUserName>\এবং এটি ssh -Tএবং ssh -vসেখানেও দেখুন।

সুতরাং সবকিছু কাজ জরিমানা মনে হয়, তা ব্যতীত git clone, git pushএবং অন্যদের একটি গুরুত্বপূর্ণ জন্য চেহারা U:\। যা ব্যর্থ হয় তাই আমি পূর্বোক্ত ত্রুটিটি পেয়েছি।

এটা আমার খুঁজে বের করতে একটি ঘন্টা লেগেছিল, কিন্তু শেষ পর্যন্ত সমাধান সহজ ছিল: আমি থেকে সবকিছু কপি C:\Users\<MyUserName>\.sshকরার জন্যU:\.ssh


1

আমি এভাবে সমাধান করেছি ..

এই কমান্ডটি ব্যবহার করে উইন্ডোজের জন্য একটি কী তৈরি করা হয়েছে:

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

তবে সমস্যাটি হ'ল এই কমান্ডটি চালানোর পরে, এটি একটি লাইন পপ করেছে: "কীটি সংরক্ষণ করার জন্য ফাইলটি প্রবেশ করান (/c/User/xxx/.ssh/id_rsa):" এখানে, আমি কেবল ফাইলের নাম দিচ্ছিলাম যার কারণে আমার কীটি আমার পিডাব্লুডিতে সংরক্ষিত হচ্ছিল, প্রদত্ত স্থানে নয়। আমি যখন "গিট ক্লোন" করেছি, তখন এটি "/c/User/xxx/.ssh/id_rsa" অবস্থানে থাকা কীটি ধরে নিচ্ছিল তবে এটি পাওয়া যায় নি, সুতরাং এটি ত্রুটি ছুঁড়েছিল।

কী প্রজন্মের সময় 2 ফাইল উত্পন্ন হয়েছিল বলে "ফাইল 1" এবং "ফাইল1.pub"। আমি এই দুটি ফাইলের নামকরণ করেছি

file1 -> id_rsa 

এবং

file1.pub -> id_rsa.pub

এবং উভয় অবস্থানে স্থাপন "/c/Users/xxx/.ssh/"


1

টার্মিনালে যান এবং আবার ssh কী পুনরায় জেনারেট করুন। প্রকার ssh-keygen। এটি আপনাকে জিজ্ঞাসা করবে আপনি কোথায় এটি সংরক্ষণ করতে চান, পথটি টাইপ করুন।

তারপরে গিটল্যাব প্ল্যাটফর্মে সর্বজনীন কীটি অনুলিপি করুন। এটি সাধারণত ssh-rsa দিয়ে শুরু হয়।


1

আমার জন্য সমস্যা হয়েছে, আমি সুইচ UsePAMথেকে yesথেকে noঅধীনে, SSH কনফিগারেশন ফাইলের মধ্যে /etc/ssh/sshd_config। সঙ্গে UsePAM yesসবকিছু ঠিকভাবে কাজ।


1

আমি সমাধান পাওয়া gitlab সাহায্যের

To create a new SSH key pair: 
 1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
 2. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "email@example.com"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
 3. Next, you will be prompted to input a file path to save your SSH key pair to... use the suggested path by pressing Enter
 4. Once the path is decided, you will be prompted to input a password to secure your new SSH key pair. It's a best practice to use a password, but it's not required and you can skip creating it by pressing Enter twice.
 5. Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
        macOS:        pbcopy < ~/.ssh/id_ed25519.pub
        WSL / GNU/Linux (requires the xclip package):      xclip -sel clip < ~/.ssh/id_ed25519.pub
        Git Bash on Windows:      cat ~/.ssh/id_ed25519.pub | clip
 6. Navigating to SSH Keys and pasting your public key in the Key field
 7. Click the Add key button

আমি আশা করি এটি আপনার কয়েকজনকে সহায়তা করতে পারে!


1

উবুন্টুতে কীভাবে গিতলাব অ্যাকাউন্টে এসএসএইচ কী যুক্ত করবেন?

  1. আপনার প্রকল্প ডিরেক্টরিতে টার্মিনাল খুলুন।
  2. 'Ssh-keygen -o -t rsa -b 4096 -C "আপনার গিটল্যাব ইমেল" "টাইপ করুন এবং এন্টার টিপুন
  3. 'Vim /home/mnbtech/.ssh/id_rsa.pub' টাইপ করুন এবং এন্টার টিপুন (অথবা আপনি নিজের 'id_rsa.pub'f ম্যানুয়ালি খুলুন যেখানে আপনি এটি সংরক্ষণ করেছেন)
  4. এসএসএইচ কী উপস্থিত হবে। সেগুলি অনুলিপি করুন এবং

  5. আপনার গিটল্যাব অ্যাকাউন্টে যান।

  6. প্রোফাইল চিত্র ক্লিক করুন এবং সেটিংস ক্লিক করুন
  7. বাম দিকে এসএসএইচ-কী নির্বাচন করুন
  8. তারপরে সেই কীটি ক্লিক করুন কী যুক্ত করুন paste

এসএসএইচ-কী যুক্ত হবে!

(এনবি যদি আপনার পূর্বরূপগুলি এসএসএইচ কী তৈরি করে থাকে এবং অনুমতি প্রাপ্তি অস্বীকৃত হয় (পাবলিক কী) You আপনি নিজের পূর্বরূপগুলি ssh কী মুছুন এবং একটি নতুন উত্পন্ন করুন এবং আপনার টার্মিনালে গিট ইউজারনাম এবং ইমেল যুক্ত করুন)


পূর্বের নির্দেশাবলীর চেয়ে সেই উত্তরে কী আলাদা?
র‌্যালফ্রেডল

1

git@gitlab.com: Permission denied (publickey)নিম্নলিখিত নির্দেশাবলী ব্যবহার করে আমি সমস্যার সমাধান করেছি

  1. চালান cat ~/.ssh/id_rsa.pub
  2. id_rsa.pubআপনার গেটলব `সেটিং -> এসএসএইচ কীগুলিতে (সর্বজনীন কী) অনুলিপি করুন
  3. চালান cat ~/.ssh/id_rsa
  4. id_rsaPrivate Code_repo-> git_auth-> id_rsa এ (ব্যক্তিগত কী) অনুলিপি করুন

দ্রষ্টব্য: আপনি যদি rootআপনার ডকারফাইলে বা অন্য কোথাও ব্যবহারকারীর ব্যবহার করছেন তবে মেশিন ব্যবহারকারীর যত্ন নিন sudo suroot


1

আমাদের ক্ষেত্রে এটি ব্যবহারকারীর / ক্লায়েন্ট পক্ষের পক্ষে সমস্যা ছিল না, তবে গিটল্যাব সার্ভারের পক্ষে।

আমরা CentOS 7.1 এ স্থানীয় গিটল্যাব সিই 12.9 উদাহরণ চালাচ্ছি।

আমরা খুঁজে পেয়েছি যে সার্ভারে .ssh / अधिकृत_keys ফাইলটি সঠিকভাবে আপডেট হচ্ছে না। ব্যবহারকারীরা তাদের এসএসএইচ কীগুলি তৈরি করে (গিটল্যাব নির্দেশিকা অনুসরণ করে) এবং এটি গিটল্যাব সার্ভারে যুক্ত করে, তবে সার্ভারটি অনুমোদিত_কিগুলি আপডেট করে না , সুতরাং এটি সর্বদা অনুমোদিত ত্রুটিযুক্ত অনুমতির ফলস্বরূপ হবে।

চালিত হয়ে অনুমোদিত_কাইজ ফাইলটি পুনর্নির্মাণের একটি কাজ ছিল :

$ sudo gitlab-rake gitlab:shell:setup

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

আরো স্থায়ী সমাধান ছিল না ব্যবহার authorized_keys -র ফাইল এবং পরিবর্তে একটি ব্যবহার Gitlab ডাটাবেসের উপর সূচীবদ্ধ লুকআপ :

গিটল্যাব শেল গিটল্যাব ডাটাবেসে একটি দ্রুত, সূচকযুক্ত অনুসন্ধানের মাধ্যমে এসএসএইচ ব্যবহারকারীদের অনুমোদনের একটি উপায় সরবরাহ করে। গিটল্যাব শেল SSH কী এর ফিঙ্গারপ্রিন্ট ব্যবহার করে ব্যবহারকারী গিটল্যাব অ্যাক্সেস করার জন্য অনুমোদিত কিনা তা পরীক্ষা করতে pr

আপনার sshd_configফাইলে নিম্নলিখিতগুলি যুক্ত করুন। এটি সাধারণত অবস্থিত /etc/ssh/sshd_configতবে এটি /assets/sshd_configযদি আপনি অমনিবাস ডকার ব্যবহার করেন তবে তা হবে :

Match User git    # Apply the AuthorizedKeysCommands to the git user only   
  AuthorizedKeysCommand /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell-authorized-keys-check git %u %k   
  AuthorizedKeysCommandUser git 
Match all    # End match, settings apply to all users again 

ওপেনএসএসএলটি পুনরায় লোড করুন:

# Debian or Ubuntu installations   
sudo service ssh reload

# CentOS installations   
sudo service sshd reload 

নিশ্চিত করুন যে ইউএসআইতে আপনার ব্যবহারকারীর এসএসএইচ কীটি সরিয়ে, একটি নতুন যুক্ত করে এবং একটি রেপো টানানোর চেষ্টা করে এসএসএইচ কাজ করছে is

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

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

তাত্ক্ষণিকভাবে অনুসন্ধান সেট আপ করার পরে এবং অনুমোদিত_কিগুলি ফাইলটিতে লিখুন যাচাই-বাছাইয়ের পরে , এসএসএইচ অ্যাক্সেস ঠিক হয়ে গেছে।


1

যে ব্যবহার করবেন জন্য উইন্ডোজ 10 এবং কিছুই অন্য তার জন্য কাজ / তার:

আমার ক্ষেত্রে, আমাকে ssh এর পরিবর্তে https এবং আমার শংসাপত্রগুলির জন্য উইন্ডো পপ-আপ দিয়ে ক্লোন করতে হয়েছিল । এরপরে সবকিছু ঠিকঠাক কাজ করে।


1

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

অধিকার

প্রথমে বুঝতে পারি যে এখানে দূরবর্তী কী। রিমোট GitLab হয় এবং আপনার সিস্টেম স্থানীয় তাই যখন আমরা দূরবর্তী সম্পর্কে কথা বলতে originযাই হোক না কেন URL আপনার সেট করা হয় git remote -vআউটপুট আপনার রিমোটের URL।

প্রোটোকল

মূলত, গিট ক্লোন / ধাক্কা / টান মূলত দুটি পৃথক প্রোটোকলে কাজ করে (অন্যরাও আছেন) -

  1. এইচটিটিপি প্রোটোকল
  2. এসএসএইচ প্রোটোকল

আপনি যখন কোনও রেপো ক্লোন করেন (বা রিমোট URL টি পরিবর্তন করেন) এবং HTTP গুলি ইউআরএলটি https://gitlab.com/wizpanda/backend-app.git ব্যবহার করেন তখন এটি প্রথম প্রোটোকল অর্থাৎ HTTP প্রোটোকল ব্যবহার করে।

আপনি যদি রেপো ক্লোন করে (বা রিমোট URL টি পরিবর্তন করেন) এবং ইউআরএল ব্যবহার করেন git@gitlab.com:wizpanda/backend-app.gitতবে এটি এসএসএইচ প্রোটোকল ব্যবহার করে।

এইচটিটিপি প্রোটোকল

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

সুতরাং যখন আপনি ধাক্কা / টান / ক্লোন করবেন, গিটল্যাব / গিটহাব আপনাকে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে প্রমাণীকরণ করবে এবং এটি আপনাকে অপারেশন করতে দেয় to

আপনি যদি এটি চেষ্টা করতে চান তবে আপনি কমান্ডটি চালিয়ে HTTP URL- এ স্যুইচ করতে পারেন git remote set-url origin <http-git-url>

সে ক্ষেত্রে এড়াতে, আপনি এসএসএইচ প্রোটোকলটি ব্যবহার করতে পারেন।

এসএসএইচ প্রোটোকল

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

এখন আপনি যখন গিটল্যাবের সাথে ধাক্কা / টান / ক্লোন করবেন, তখন জিআইটি (এসএসএইচ অভ্যন্তরীণভাবে) ডিফল্টরূপে গিটল্যাবকে আপনার ব্যক্তিগত কী সরবরাহ করে এবং আপনার পরিচয় নিশ্চিত করে এবং তারপরে গিটল্যাব আপনাকে অপারেশন করার অনুমতি দেয়।

সুতরাং আমি মুহাম্মদ দ্বারা ইতিমধ্যে দেওয়া পদক্ষেপগুলি পুনরাবৃত্তি করব না, আমি তাদের তাত্ত্বিকভাবে পুনরাবৃত্তি করব।

  1. একটি মূল জুটি তৈরি করুন sh ssh-keygen -t rsa -b 2048 -C "আমার সাধারণ SSH কী"
  2. উত্পাদিত কী জুটি ডিফল্টরূপে ~/.sshনামযুক্ত id_rsa.pub(পাবলিক কী) এবং id_rsa(ব্যক্তিগত কী) হবে।
  3. আপনি আপনার গিটল্যাব অ্যাকাউন্টে সর্বজনীন কী সংরক্ষণ করবেন (একই কীটি একাধিক বা কোনও সার্ভার / অ্যাকাউন্টগুলিতে ব্যবহার করা যেতে পারে)।
  4. আপনি যখন ক্লোন / ধাক্কা / টানেন, জিআইটি আপনার ব্যক্তিগত কী সরবরাহ করে।
  5. গিটল্যাব আপনার সর্বজনীন কীটির সাথে প্রাইভেট কীটি মেলে এবং আপনাকে সম্পাদনা করার অনুমতি দেয়।

পরামর্শ

আপনার সর্বদা কমপক্ষে 2048 বাইট সহ একটি শক্তিশালী আরএসএ কী তৈরি করা উচিত। সুতরাং কমান্ড হতে পারে ssh-keygen -t rsa -b 2048

https://gitlab.com/help/ssh/README#generating-a-new-ssh-key-pair

সাধারণ চিন্তা

উভয় পদ্ধতিরই তাদের পক্ষে মতামত রয়েছে। আমি উপরের পাঠ্যটি টাইপ করার পরে, আমি এটি সম্পর্কে আরও অনুসন্ধান করতে গিয়েছিলাম কারণ আমি এই বিষয়ে কখনই পড়ি না।

আমি এই অফিশিয়াল ডকটি https://git-scm.com/book/en/v2/Git-on-the-Server-The-Potocols খুঁজে পেয়েছি যা এ সম্পর্কে আরও জানায়। এখানে আমার বক্তব্যটি হ'ল, ত্রুটিটি পড়ে এবং ত্রুটিটি সম্পর্কে একটি চিন্তাভাবনা দেওয়ার মাধ্যমে আপনি নিজের তত্ত্ব বা বোঝাপড়া তৈরি করতে পারেন এবং তারপরে সমস্যাটি সমাধানের জন্য কিছু গুগলের ফলাফলের সাথে মিল করতে পারেন :)


0

আমি ~/.ssh/id_rsa.pubআমার গিটল্যাব সেটিংস https://gitlab.com/profile/keys- এ পরিচিত এসএসএইচ কীগুলির তালিকায় আমার যুক্ত করেছি । এটি আমার জন্য সমস্যার সমাধান করেছে। :-)


0

আমি উবুন্টু 18.04 ব্যবহার করি এবং এটি আমার স্থানীয় মেশিনে আসলে অনুমতি সংক্রান্ত সমস্যা ছিল। আমি যখন আমার .git ফোল্ডারে পড়ার / লেখার অনুমতি সেট করলাম তখন সমস্যাটি চলে গেল।


0

ঠিক আছে আমারও একই সমস্যা ছিল এবং উত্তর চেষ্টা করার পরে @ খান প্রস্তাব করলেন। তবে, আমি কেবলমাত্র .git / কনফিগারেশন ফাইলের মূল URLটি https ঠিকানায় পরিবর্তন করে এটি তৈরি করতে সক্ষম হয়েছি: https://gitlab.com/mygitlabusername/mygitproject.git

যেহেতু এসএসএসের মাধ্যমে অ্যাক্সেস প্রত্যাখ্যান করা হয়েছে, তাই https ব্যবহার করে সমস্যাটি হওয়া উচিত নয় I তবে এটি रिपোরিটরিতে প্রতিটি ধাক্কার জন্য আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড চাইবে


0

git config credential.helper storeআপনার সাইট টিএলএস / এসএসএল ব্যবহার করে থাকে দয়া করে ব্যবহার করুন । আশা করি এটি কাজ করে


0

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

আপনার প্রকল্পের ল্যান্ডিং পৃষ্ঠায় ক্লোন বোতামটি ক্লিক করে এবং এইচটিটিপিএস লিঙ্কটি অনুলিপি করে এবং "গিট @ গিটলব ..." বিন্যাসের সাথে উপস্থিত হয়ে এসএসএইচ লিঙ্কে প্রতিস্থাপন করে সমস্যার সমাধান করা যেতে পারে।


যে প্রশ্নের উত্তর দেয় না।
রালফ্রেডল

0

অনুমতি পরিবর্তন করুন :: chmod 400 ~ / .ssh / id_rsa এটি আমার পক্ষে সহায়তা করেছিল।

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