গিটল্যাব এসএসএইচ কীগুলির সাথে কাজ করছে না


11

গীতলাব নিয়ে আমার সমস্যা হচ্ছে। গিটল্যাব https://github.com/gitlabhq/gitlab-recips/blob/master/install/centos/README.md ইনস্টল ও কনফিগার করতে আমি নিম্নলিখিত গাইডটি ব্যবহার করেছি । ইনস্টলেশনটি বেশ ভাল বলে মনে হচ্ছে। ওয়েব অ্যাপ্লিকেশনটি ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে। তবে আমি ক্লোন, টান, ধাক্কা দিতে অক্ষম, মূলত আমি গিটল্যাব ব্যবহার করতে পারি না। আমি এসটিএইচ-তে ক্লোন করার চেষ্টা করার সময় এইচটিটিপি সহ 403 ত্রুটি দেখেছি এবং অনুমতি অস্বীকার করা হয়েছে।

আমি নিশ্চিত করেছি যে আমার ব্যক্তিগত কীগুলি উইন্ডোজ এবং ওএস এক্স উভয় ক্ষেত্রেই সঠিকভাবে সেট আপ হয়ে গেছে I আমি সার্ভারে পাবলিক কীগুলি দেখতে পাচ্ছি। আমি config / .ssh.config- এ আমার কনফিগার ফাইলে নিম্নলিখিতগুলি যুক্ত করেছি

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

এটি আমি / var / লগ / সুরক্ষিত দেখতে পাচ্ছি

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

/var/log/messageভূমিকা যখন আমি Git বা SSH ব্যবহার করার চেষ্টা করেনি

আমি জানি না এখান থেকে কোথায় যাব। কোন পরামর্শ?

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


আপনি কি 'গিট' ব্যবহারকারী হিসাবে গিট সার্ভারে এসএসএইচ করতে পারবেন? সংযোগটি কেন বন্ধ হচ্ছে তার উপর আরও কিছু আউটপুট পেতে আপনি '-vvv' প্যারামিটার যুক্ত করার চেষ্টা করতে পারেন? সেখানে কোনও ত্রুটি আছে কিনা তা দেখার জন্য এটি / var / লগ / সুরক্ষিত এবং / var / লগ / বার্তা ফাইলগুলি পরীক্ষা করার উপযুক্ত হতে পারে।
জাসি

পাবলিক কীগুলি ক্লায়েন্টে সেট আপ করা হয় না - আপনাকে নিশ্চিত করতে হবে যে আপনার ব্যক্তিগত কীগুলি আপনার ক্লায়েন্টে রয়েছে। সার্বজনীন কীগুলি সার্ভারে যায়।
EEAA

আমার প্রশ্ন আপডেট। আশা করি এটি সহায়তা করে
গ্রেফক্স

উত্তর:


10

আপনি যদি আপনার ক্লায়েন্টে আপনার ব্যক্তিগত কী চাপিয়েছেন তা সরবরাহ করে, তবে মনে হয় এটি 'গিট' ব্যবহারকারীর হোম ডিরেক্টরি এবং .ssh ডিরেক্টরিতে অনুমতি সংক্রান্ত সমস্যা হতে পারে।

দয়া করে আপনার / হোম / গিট ডিরেক্টরিটি 0711 এর মাস্কে পরিবর্তন করার চেষ্টা করুন:

chmod 0711 /home/git

/Home/git/.ssh ডিরেক্টরিতে 0700 এর মুখোশ রয়েছে তা নিশ্চিত করুন:

chmod 0700 /home/git/.ssh

/Home/git/.ssh/authorised_keys ফাইলে 0600 এর মাস্ক রয়েছে তা নিশ্চিত করুন:

chmod 0600 /home/git/.ssh/authorized_keys

টিউটোরিয়ালটিতে আলাদা থাকলে 'গিট' ব্যবহারকারীর জন্য আপনার হোম ডিরেক্টরি যা আছে তার সাথে / হোম / গিটটি প্রতিস্থাপন করুন। যদি এটি অনুমতি না থাকে তবে দয়া করে মন্তব্য করুন এবং আমরা কী করব তা আরও দেখতে পাব।


বিষয়টি হতে পারে। আমি আমার ম্যাকের গিট ক্লোন গিট @ {হোস্টনেম}: {ওয়ার্কস্পেস} / {সংগ্রহস্থল using ব্যবহার করে ক্লোন করতে সক্ষম know দুর্ভাগ্যক্রমে আমি আমার উইন্ডোজ মেশিনটি কাজ করে রেখেছি তাই আমাকে আগামীকাল চেষ্টা করে দেখার দরকার হবে। পিটল / প্রাইভেট কী প্রমাণীকরণটি কি গিটলাবের সাথে এইচটিটিপি-র উপর কাজ করে না? গিথুব কীভাবে কাজ করেছিলেন তা আমি ছাপের মধ্যে ছিলাম তবে আমি সে সম্পর্কে ভুল হতে পারি।
গ্রেফক্স

পাবলিক / প্রাইভেট কী প্রমাণীকরণ কেবলমাত্র এসএসএইচ-তে কাজ করে। আপনি যদি HTTP ব্যবহার করেন তবে আপনাকে কিছু করতে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করতে হবে। আপনি যদি ভি 1.8 এর মতো গিতের একটি নতুন সংস্করণ ব্যবহার করছেন তবে এটি আপনাকে ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য অনুরোধ জানানো উচিত। গিটের পুরানো সংস্করণগুলি এটি করে না, সুতরাং আপনাকে নিজের ব্যবহারকারী নাম এবং পাসওয়ার্ডের রিমোটের https://username:password@git.server.com/repo.git
ইনলাইনটি যুক্ত করতে হবে

আহ্হ্ যা এখন আরও বেশি বোঝায়। উইন্ডোজ অ্যাপ্লিকেশনটির জন্য গিটহাব কি শংসাপত্রগুলি সংরক্ষণ করে? সাহায্যের জন্য অনেক ধন্যবাদ!
গ্রেফক্স

আমি গিটহাব উইন্ডোজ অ্যাপ্লিকেশনটি খুব বেশি ব্যবহার করি নি, তবে আমি মনে করি আপনি যখন এটি খুলবেন তখন স্মৃতি থেকে এটিতে একটি লগইন দরকার ছিল, তাই আমি বলব যে অ্যাক্সেস শংসাপত্রগুলি আপনাকে সর্বদা প্রবেশ করার ব্যথা বাঁচাতে সংরক্ষণ করে।
জাসি

1

আপনার সর্বজনীন কী (যা ওয়েব মুখের মাধ্যমে আমদানি করা হয়েছিল) এর জন্য কেবলমাত্র একটি রেকর্ড রয়েছে /home/git/.ssh/authorized_keysএবং এই কীটিতে গিটল্যাবের উপসর্গ এবং শিরোনাম রয়েছে তা পরীক্ষা করে দেখুন। অন্য কথায়, আপনি যদি গিটল্যাব ইনস্টল করার আগে ম্যানুয়ালি একই কী যুক্ত করেছেন তবে এটি মুছে ফেলুন।


আপনার সেখানে একাধিক কী থাকতে পারে এবং আপনার ব্যক্তিগত কীটি মিলতে পারলে আপনি লগইন করতে সক্ষম হবেন ...
জেসি

@Jason, আমি শুধু আরো সঠিকভাবে ব্যাখ্যা করতে সম্পাদনা করেছেন
sinm

আপনাকে ধন্যবাদ, এটা আমার জন্য ছিল। গিটল্যাব ব্যবহার করার আগে আমি একটি চাবি যুক্ত করার আগে আমার ssh কী ম্যানুয়ালি রেখেছিলাম এবং সদৃশ কীগুলির কারণে সমস্যা দেখা দিয়েছে।
6ft ড্যান

1

আমি আরও জানাতে চাই যে গিটল্যাবে ক্লোন / টান / ধাক্কা দেওয়ার সঠিক অনুমতি ব্যবহারকারীর কাছে রয়েছে। আমি কেবলমাত্র ssh / https কনফিগারেশনগুলি অনুসন্ধান করার জন্য খুব বেশি সময় ব্যয় করেছি, যখন সমস্যার কারণটি যখন গিতল্যাবে পর্যাপ্ত অনুমতিপ্রাপ্ত না ছিল তখন ...


1

আমার পরিস্থিতিতে আমি ফ্রিবিএসডি প্যাকেজগুলির মাধ্যমে গিটল্যাব ইনস্টল করেছি। গীতলাব এসএসএইচ কাজ করেনি। এর কারণটি ছিল গিটের জন্য একটি ভুল হোম ডিরেক্টরি: (ভিআইপিডাব্লু)

git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh

আমি এটিকে পরিবর্তন করেছি:

git:*:211:211::0:0:gitosis user:/home/git:/bin/sh

1

হোস্টটির নামে '-' থাকলে এটি ঘটতে পারে। (যদিও এটি আরএফসি 952 অনুসারে আইনী )

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

অন্য কথায় আপনার সি: / ব্যবহারকারী / {ব্যবহারকারীর নাম} /। এসএসএস / কনফিগারেশনে নিম্নলিখিত জাতীয় কিছু রাখার চেষ্টা করুন

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

এবং যেখানে আপনার ফর্মের রিমোট রয়েছে

origin  git@a-b.domain:repo-name.git

এটি সরান এবং তারপরে ফর্মটি ব্যবহার করে এটি পুনরায় যুক্ত করুন

origin  git@a:repo-name.git

1

আপনি কীটি পাস করার জন্য যদি পরিবেশের ভেরিয়েবলগুলি ব্যবহার করেন তবে আপনার এগুলি এনকোড করা উচিত 64 অন্যথায় তারা আপনার পাসফ্রেজ জিজ্ঞাসা করতে ত্রুটিযুক্ত হয়ে ব্যর্থ হবে। এর অর্থ কীটি দূষিত। যদি আপনি দেখেন:

$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1

তারপরে বেস64 64 এসএসএইচপিআরআইভিএইচআই ভেরিয়েবলকে এনকোড করে। আপনি যদি ওএস এক্স এ থাকেন,

cat ~/.ssh/ssh_key_for_project | base64 | pbcopy

এটি এনকোড করে আপনার ক্লিপবোর্ডে অনুলিপি করবে। এখন .gitlab-ci.yml স্ক্রিপ্ট লাইন পরিবর্তন করুন

- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)


0

আমার সমস্যাটি ছিল প্রাইভেট কীগুলি ফাইল id_rsa তৈরি এবং পুট্টিজন দ্বারা সংরক্ষণ করা উবুন্টু মেশিন থেকে তৈরি ফাইলের চেয়ে আলাদা ফর্ম্যাট। আমি উবুন্টু মেশিন থেকে একটি জোড়া কী তৈরি করার পরে এই ফাইলগুলিকে উইন্ডোজ মেশিনে% UserProfile% .ssh ফোল্ডারে অন্তর্ভুক্ত করে নকল করুন, তারপরে গিটল্যাবে নতুন উত্পন্ন সর্বজনীন কী যুক্ত করুন। আমার পক্ষে আর কোনও অনুমতি অস্বীকৃত

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