একই কম্পিউটারে একাধিক গিথুব অ্যাকাউন্ট?


417

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

কাজের অ্যাকাউন্টটি প্রথমে সেট আপ করা হয়েছিল এবং সবকিছু নির্বিঘ্নে কাজ করে।

আমার ব্যক্তিগত অ্যাকাউন্ট, তবে আমার ব্যক্তিগত রেপোতে চাপ দিতে পারে না যা আলাদা অ্যাকাউন্ট / ইমেলের অধীনে সেট আপ করা হয়েছে।

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

আমি কীভাবে উভয় অ্যাকাউন্টগুলিতে, সম্পর্কিত গিথুব শংসাপত্রগুলি থেকে ধাক্কা / টানতে পারি?


3
লিঙ্কে প্রদত্ত পদক্ষেপগুলি http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and- মাল্টিপল- অ্যাকাউন্টগুলি আমার পক্ষে ভাল কাজ করেছে এবং আপনার একটি জিনিস যুক্ত করার জন্য অন্যায্য <br> & nbsp ব্যবহার করে আপনাকে ব্যক্তিগত রেপো কী যুক্ত করতে হবে; ssh-add ~/.ssh/id_rsa_COMPANY <br/> ssh- এজেন্টকে এটি ব্যবহারের জন্য অন্তর্ভুক্ত করতে বলার জন্য <<hr /> বিশ্রামটি উপরে উল্লিখিত টিউটোরিয়ালটি দিয়ে আমার পক্ষে ভাল কাজ করে।
ব্রুট 3

2
"অবশ্যই কারণ একটি চাবি শুধুমাত্র একটি অ্যাকাউন্টে সংযুক্ত করা যেতে পারে" অবশ্যই? কেন?
স্পার

গিট 2.13 এর পরে শর্তসাপেক্ষে .gitconfig অন্তর্ভুক্ত সমর্থন করে যা ফোল্ডার অনুক্রম অনুযায়ী প্রতিটি পরিচয় পরিচালনা করার জন্য একটি দরকারী উপায়। stackoverflow.com/a/36296990/901597
জো Bowbeer

উত্তর:


275

আপনাকে যা করতে হবে তা হ'ল একাধিক এসএসএইচ কী-পিয়ারগুলি সহ আপনার এসএসএইচ সেটআপটি কনফিগার করা।

এছাড়াও, যদি আপনি বিভিন্ন ব্যক্তি ব্যবহার করে একাধিক সংগ্রহস্থল নিয়ে কাজ করছেন, আপনার নিজের পৃথক ভান্ডারগুলিতে সেই অনুযায়ী ব্যবহারকারীর সেটিংস ওভাররাইড করা আছে তা নিশ্চিত করতে হবে:

ব্যবহারকারীর নাম, ইমেল এবং গিটহাব টোকেন সেট করা - স্বতন্ত্র রেপোগুলির জন্য ওভাররাইডিং সেটিংস https://help.github.com/articles/setting-your-commit-email-address-in-git/

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

দ্রষ্টব্য: আপনার কারও কারও কাছে বিভিন্ন সংগ্রহস্থলের জন্য আলাদা আলাদা ইমেল প্রয়োজন হতে পারে, গিট ২.১ from থেকে আপনি পাওয়া বৈশ্বিক কনফিগারেশন ফাইলটিতে সম্পাদনা করে ডিরেক্টরিটির ভিত্তিতে ইমেলটি সেট করতে পারেন: এ জাতীয় ~/.gitconfigশর্তযুক্ত ব্যবহার করে:

[user]
    name = Pavan Kataria
    email = defaultemail@gmail.com

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

এবং তারপরে আপনার কাজের নির্দিষ্ট কনফিগারেশন work / work / .gitconfig এটিকে দেখতে পাবেন:

[user]
    email = pavan.kataria@company.tld

মন্তব্যগুলিতে আমাকে এ সম্পর্কে অবহিত করার জন্য আপনাকে ধন্যবাদ


4
তৃতীয় লিঙ্কটি এখন ভেঙে গেছে (একাধিক এসএসএইচ কী)
রাস্টি দ্য বয়রবোট

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

1
@ ক্যামিলো কারণ নতুন আপডেট হওয়া লিঙ্কটি কী তা আমি জানি না, তাই যদি সে আপডেট হওয়া লিঙ্কটি সম্পর্কে অবগত থাকে তবে তার পক্ষে এটি আটকে রাখা অনুগ্রহ করে :)
প্যাভান

4
@ আলমাস অ্যাডিলব্যাক এখন প্রায় ৩ বছর কেটে গেছে, লিঙ্কগুলি ভাঙ্গতে এবং ভাঙতে বাধ্য bound কোনও বিকল্প নিবন্ধ সন্ধান করতে বা আবার মূল উত্সটি খুঁজে পেতে যত্নশীল যাতে আপনি আমার সাথীর জন্য লিঙ্কটি সহায়কভাবে আপডেট করতে পারেন? আমি চিরতরে ভাঙা লিঙ্কগুলি ঠিক করে রাখতে পারি না।
পভান

3
আপনার প্রকৃত পোস্টের সমালোচনামূলক পদক্ষেপগুলি সংক্ষেপ না করে এটি কোনও উত্তর নয়। এই উত্তরটি ইতিমধ্যে একবার লিঙ্ক পচায় ভুগেছে, তবে প্রয়োজনীয় আপডেট টব প্রশ্নের উত্তর দেয় না।
আপনাকে ধন্যবাদ

138

এইচটিটিপিএস ব্যবহার করুন:

রিমোট ইউআরএলটি https এ পরিবর্তন করুন:

git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

এবং আপনি যেতে ভাল:

git push

কমিটগুলি USERNAME দ্বারা সম্পাদিত হিসাবে প্রদর্শিত হবে তা নিশ্চিত করতে, কেউ এই প্রকল্পের জন্য ব্যবহারকারীর নাম এবং ইউজার.ইমেল সেটআপ করতে পারেন :

git config user.name USERNAME
git config user.email USERNAME@example.com

8
অন্য একটি ব্যক্তিগত সংগ্রহস্থল থেকে দ্রুত ডাউনলোডের সহজ সমাধান।
জাপ জের্তস

1
এটি হ'ল স্ট্যাকের উপর থেকে পাওয়া সেরা সমাধান
হরবিন্দর সিং

আমি আরও ssh কী যুক্ত করতে চাইনি বলে এই সমাধানটি সহজতম পদ্ধতি সরবরাহ করে। শুধু একটি নোট, আপনি ইতিমধ্যেই আপনার সেট যদি user.nameএবং user.emailসঙ্গে --globalপতাকা, শুধু সে কি উপরে বলছেন ঠিক যে এক রেপো জন্য স্থানীয়ভাবে সেট করতে না। যে অনেক সমস্যার সমাধান। এখন পুরানো রেপো মুছতে ....
Thatrobotguy

71

আকারে উঠছে

পৃথক গিথুব / বিটবাকেট / যে কোনও অ্যাকাউন্টের আওতায় গিট রেপো পরিচালনা করতে আপনার কেবল নতুন একটি এসএসএইচ কী তৈরি করতে হবে।

তবে আমরা আপনার দ্বিতীয় পরিচয় দিয়ে রেপোগুলি পুশ করা / টানা শুরু করার আগে, আমরা আপনাকে রূপ দিতে চাই - আসুন ধরে নেওয়া যাক আপনার সিস্টেমটি একটি সাধারণ id_rsaএবং id_rsa.pubকী জুটির সাহায্যে সেটআপ হয়েছে । এই মুহূর্তে আপনার tree ~/.sshচেহারা

$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── id_rsa
└── id_rsa.pub

প্রথমে সেই কী জুটির নাম দিন - একটি বর্ণনামূলক নাম যুক্ত করা আপনাকে কোন ব্যবহারকারী / রিমোটের জন্য কোন কীটি ব্যবহৃত হয় তা মনে রাখতে সহায়তা করবে

# change to your ~/.ssh directory
$ cd ~/.ssh

# rename the private key
$ mv id_rsa github-mainuser

# rename the public key
$ mv id_rsa.pub github-mainuser.pub

এর পরে, একটি নতুন কী জুড়ি তৈরি করা যাক - এখানে আমি নতুন কীটির নাম দেবgithub-otheruser

$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-otheruser

এখন, যখন আমরা তাকান tree ~/.sshআমরা দেখতে

$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── github-mainuser
├── github-mainuser.pub
├── github-otheruser
└── github-otheruser.pub

এর পরে, আমাদের একটি ~/.ssh/configফাইল সেটআপ করতে হবে যা আমাদের কী কনফিগারেশনগুলি সংজ্ঞায়িত করবে। আমরা এটিকে উপযুক্ত মালিকের পঠন / লেখার জন্য কেবল অনুমতি দিয়ে তৈরি করব

$ (umask 077; touch ~/.ssh/config)

এটি আপনার প্রিয় সম্পাদক দিয়ে খুলুন এবং নীচের বিষয়বস্তু যুক্ত করুন

Host github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

সম্ভবত, আপনার প্রাথমিক গিথুব পরিচয়ের সাথে আপনার কিছু বিদ্যমান রেপো যুক্ত থাকবে। যে কারণে, "ডিফল্ট" github.com Hostআপনার mainuserকী ব্যবহার করতে সেটআপ করা আছে । আপনি যদি অন্য অ্যাকাউন্টের জন্য কোনও অ্যাকাউন্টের পক্ষে না চান তবে আমি আপনাকে দেখাব কিভাবে আপডেট সিস্টেমে কনফিগারেশন ব্যবহার করার জন্য আপনার সিস্টেমে বিদ্যমান রেপোগুলি আপডেট করতে হয়।


গিথুবে আপনার নতুন এসএসএইচ কী যুক্ত করুন

আপনার নতুন পাবলিক কী যুক্ত করতে github.com/settings/keys এ চলে যান

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

$ cat ~/.ssh/github-otheruser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBVvWNQ2nO5...

এখন আপনার নতুন ব্যবহারকারীর পরিচয় সমস্ত সেটআপ - নীচে আমরা কীভাবে এটি ব্যবহার করব তা আপনাকে দেখাব।


জিনিস শেষ হচ্ছে: একটি রেপো ক্লোনিং

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

ধরা যাক github.com/someorg/somerepoইতিমধ্যে বিদ্যমান এবং আপনাকে এতে যুক্ত করা হয়েছিল - ক্লোনিং করা তত সহজ

$ git clone github.com-otheruser:someorg/somerepo.git

এই সাহসী অংশটি অবশ্যইHost আপনার ~/.ssh/configফাইলে সেটআপ করা নামের সাথে মেলে । এটি সঠিকভাবে সম্পর্কিতটিকে গিটের সাথে সংযুক্ত করে IdentityFileএবং আপনাকে গিথুব দিয়ে সঠিকভাবে প্রমাণীকরণ করে


জিনিস শেষ করা: একটি নতুন রেপো তৈরি করা

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

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

$ cd ~
$ mkdir somerepo
$ cd somerepo
$ git init

আপনার পরিচয় ব্যবহার করতে এখন এই রেপোটি কনফিগার করুন

$ git config user.name "Mister Manager"
$ git config user.email "someuser@some.org"

এখন আপনার প্রথম প্রতিশ্রুতিবদ্ধ করুন

$ echo "hello world" > readme
$ git add .
$ git commit -m "first commit"

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

$ git log --pretty="%H %an <%ae>"
f397a7cfbf55d44ffdf87aa24974f0a5001e1921 Mister Manager <someuser@some.org>

ঠিক আছে, গিথুব ঠেলে সময়! যেহেতু গিতুব এখনও আমাদের নতুন রেপো সম্পর্কে জানেন না, তাই প্রথমে github.com/new এ যান এবং আপনার নতুন রেপো তৈরি করুন - এর নাম সোরেরেপো

এখন, সঠিক পরিচয় / শংসাপত্রগুলি ব্যবহার করে গিথুবকে "আলাপ" করতে আপনার রেপো কনফিগার করতে, আমরা একটি রিমোট যুক্ত করেছি। আপনার নতুন অ্যাকাউন্টের জন্য আপনার গিথব ব্যবহারকারীর নাম ধরে নেওয়াsomeuser ...

$ git remote add origin github.com-otheruser:someuser/somerepo.git

এই সাহসী অংশটি একেবারে সমালোচনামূলক এবং এটি অবশ্যই মিলবেHost আপনার ~/.ssh/configফাইলের মধ্যে আমরা সংজ্ঞায়িত করেছি

সবশেষে, রেপো টিপুন

$ git push origin master

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

বলুন আপনি ইতিমধ্যে কিছু রেপো ক্লোন করেছেন, তবে এখন আপনি একটি নতুন এসএসএইচ কনফিগারেশন ব্যবহার করতে চান। উপরের উদাহরণে, আমরা আপনার পূর্ববর্তী id_rsa/ নিয়োগ দিয়ে কৌশলগুলিতে আপনার বিদ্যমান রেপোগুলি রেখেছিid_rsa.pub কীHost github.com আপনার এসএসএইচ কনফিগারেশন ফাইলে । এটিতে কোনও ভুল নেই, তবে আমার এখন কমপক্ষে 5 টি গিথুব কনফিগারেশন রয়েছে এবং আমি তাদের মধ্যে একটিরও "ডিফল্ট" কনফিগারেশন হিসাবে ভাবতে পছন্দ করি না - আমি বরং প্রতিটিটি সম্পর্কে স্পষ্ট থাকব।

আমাদের এটি ছিল আগে

Host github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

সুতরাং আমরা এখন এটি আপডেট করব ( সাহসী পরিবর্তন )

Host github.com-mainuser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

তবে এর অর্থ হ'ল এখন যে কোনও github.comরিমোট সহ বিদ্যমান রেপো এই পরিচয় ফাইলটির সাথে আর কাজ করবে না। তবে চিন্তা করবেন না, এটি একটি সহজ সমাধান।

আপনার নতুন এসএসএইচ কনফিগারেশনটি ব্যবহার করতে যে কোনও বিদ্যমান রেপো আপডেট করতে কেবল রেপোর গিট কনফিগারেশন ফাইলটি খুলুন এবং ইউআরএল আপডেট করুন!

$ cd existingrepo
$ nano .git/config

দূরবর্তী উত্স ক্ষেত্রটি আপডেট করুন ( সাহসী পরিবর্তনগুলি )

[remote "origin"]
        url = github.com-mainuser:someuser/existingrepo.git
        fetch = +refs/heads/*:refs/remotes/origin/*

এটাই. এখন আপনি push/ pullআপনার হৃদয়ের বিষয়বস্তু করতে পারেন


এসএসএইচ কী ফাইলের অনুমতি

যদি আপনি আপনার পাবলিক কীগুলি সঠিকভাবে কাজ না করে সমস্যায় পড়ছেন তবে আপনার উপর অনুমোদিত ফাইল অনুমতিগুলির ক্ষেত্রে এসএসএইচ কঠোর~/.ssh ডিরেক্টরিতে এবং সম্পর্কিত কী ফাইলগুলিতে

থাম্বের নিয়ম হিসাবে, যে কোনও ডিরেক্টরি হওয়া উচিত 700এবং যে কোনও ফাইল হওয়া উচিত 600- এর অর্থ তারা মালিক-পঠনযোগ্য / কেবল লেখার জন্য - অন্য কোনও গ্রুপ / ব্যবহারকারী এগুলি পড়তে / লিখতে পারে না

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/config
$ chmod 600 ~/.ssh/github-mainuser
$ chmod 600 ~/.ssh/github-mainuser.pub
$ chmod 600 ~/.ssh/github-otheruser
$ chmod 600 ~/.ssh/github-otheruser.pub

আমি কীভাবে আমার এসএসএইচ কীগুলি পরিচালনা করি

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

আমার ~/.sshডিরেক্টরিটি দেখতে দেখতে এটি এখানে: .pemপ্রতিটি ব্যবহারকারীর জন্য আমার একটি কী রয়েছে, আমি যে ডোমেনটিতে সংযুক্ত থাকি তার জন্য একটি ফোল্ডারে। আমি .pemকীগুলি ব্যবহার করি তাই আমার প্রতি প্রতি কী প্রতি একটি ফাইল দরকার ।

$ tree ~/.ssh
/Users/naomik/.ssh
├── config
├── github.com
│   ├── naomik.pem
│   ├── someusername.pem
├── known_hosts
├── naomi.makes.software
│   ├── naomi.pem
├── somedomain.com
│   ├── someuser.pem
└── someotherdomain.org
    └── someuser.pem

এবং এখানে আমার সম্পর্কিত /.ssh/configফাইলটি - স্পষ্টতই গিথুব স্টাফগুলি গিথুব সম্পর্কে এই প্রশ্নের উত্তর দেওয়ার জন্য প্রাসঙ্গিক, তবে এই উত্তরটির লক্ষ্য আপনাকে কোনও সংখ্যক পরিষেবা / মেশিনে আপনার এসএসএস পরিচয় পরিচালনা করতে জ্ঞান দিয়ে সজ্জিত করা।

Host github.com-naomik
  HostName github.com
  User git
  IdentityFile ~/.ssh/github.com/naomik.pem

Host github.com-someuser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github.com/someusername.pem

Host naomi.makes.software
  User naomi
  IdentityFile ~/.ssh/naomi.makes.software/naomi.pem

Host somedomain.com
  HostName 162.10.20.30
  User someuser
  IdentityFile ~/.ssh/somedomain.com/someuser.pem

Host someotherdomain.org
  User someuser
  IdentityFile ~/.ssh/someotherdomain.org/someuser.pem

একটি পিইএম কী থেকে আপনার এসএসএইচ পাবলিক কী পাওয়া

উপরে আপনি লক্ষ্য করেছেন যে প্রতিটি চাবির জন্য আমার কাছে কেবল একটি ফাইল রয়েছে। যখন আমাকে একটি সার্বজনীন কী সরবরাহ করতে হবে, আমি কেবল প্রয়োজন হিসাবে এটি তৈরি করি।

সুতরাং যখন গিথুব আপনার ssh পাবলিক কী জিজ্ঞাসা করবে, সর্বজনীন কীটি স্টাডআউটে আউটপুট করতে এই কমান্ডটি চালান - যেখানে প্রয়োজন সেখানে অনুলিপি / পেস্ট করুন

$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAA...

দ্রষ্টব্য, যে কোনও দূরবর্তী মেশিনে আমার কী যুক্ত করার জন্য এটি আমি একই প্রক্রিয়াটি ব্যবহার করি। ssh-rsa AAAA...মান রিমোটের তে অনুলিপি করা ~/.ssh/authorized_keysফাইল


আপনার id_rsa/ id_rsa.pubকী জুটিকে পিইএম ফর্ম্যাটে রূপান্তর করা হচ্ছে

সুতরাং আপনি কী ফাইলগুলিকে নিয়ন্ত্রণ করতে চান এবং কিছু ফাইল সিস্টেম ক্রাফ্ট কাটতে চান? আপনার কী জুটিকে একটি একক পিইমে রূপান্তর করা সহজ

$ cd ~/.ssh
$ openssl rsa -in id_rsa -outform pem > id_rsa.pem

অথবা, উপরের আমাদের উদাহরণগুলি অনুসরণ করে, আমরা নাম পরিবর্তন করেছি id_rsa -> github-mainuserএবং id_rsa.pub -> github-mainuser.pub- তাই

$ cd ~/.ssh
$ openssl rsa -in github-mainuser -outform pem > github-mainuser.pem

আমরা কেবল এটি সঠিক রূপান্তর করেছি তা নিশ্চিত করার জন্য, আপনি যাচাই করতে চাইবেন যে উত্সাহিত পাবলিক কী আপনার পুরানো পাবলিক কীটির সাথে মেলে

# display the public key
$ cat github-mainuser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==

# generate public key from your new PEM
$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==

এখন আপনার কাছে আপনার github-mainuser.pemফাইল রয়েছে, আপনি নিজের পুরানো github-mainuserএবং github-mainuser.pubফাইলগুলি নিরাপদে মুছতে পারেন - কেবলমাত্র পিএম ফাইলই প্রয়োজনীয়; আপনার যখনই প্রয়োজন হবে কেবলমাত্র সর্বজনীন কী তৈরি করুন ^ _ ^ ^


স্ক্র্যাচ থেকে পিইএম কী তৈরি করা হচ্ছে

আপনার ব্যক্তিগত / পাবলিক কী জুড়ি তৈরি করার দরকার নেই এবং তারপরে একটি একক পিইএম কীতে রূপান্তর করতে হবে। আপনি সরাসরি পিইএম কী তৈরি করতে পারেন।

এর একটি তৈরি করা যাক newuser.pem

$ openssl genrsa -out ~/.ssh/newuser.pem 4096

এসএসএইচ পাবলিক কী পাওয়া একই is

$ ssh-keygen -y -f ~/.ssh/newuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACA ... FUNZvoKPRQ==

1
আমি বুঝতে পেরেছি এটি একটি পুরানো প্রশ্ন তবে এটি এড়িয়ে চলে না যে এখানে প্রায় প্রতিটি উত্তরই কিছু টিউটোরিয়ালের লিঙ্ককে নির্ভর করে এবং তাই লিঙ্ক পচানোর বিষয়। উত্স / উদ্ধৃতি লিঙ্ক করা ঠিক আছে, তবে আপনি এখানে পোস্ট করা আপনার উত্তরটিতে সমালোচনামূলক বিটগুলির সংক্ষিপ্ত বিবরণ না দিলে আপনি কোনও লিঙ্কে ঝুঁকতে পারবেন না।
ধন্যবাদ

আমি আপনার দুর্দান্ত এবং বিস্তারিত উত্তরটিকে এটির সঠিকভাবে সঠিকভাবে হিসাবে উত্সাহিত করেছি। এটির সাথে আমার সমস্যাটি হ'ল এটি জটিল and আমার নীচের উপায়টি খুব সহজ - আমি কেবল 3 টি নতুন ফাইল এবং একটি নতুন স্ক্রিপ্ট তৈরি করি এবং আমি যেতে ভাল। এটি আমার জন্য বহু বছর নির্দোষভাবে কাজ করেছিল। পাঠকরা সিদ্ধান্ত নিতে পারেন যে তাদের জন্য সবচেয়ে ভাল কী কাজ করে।
ডেভিড এইচ

ডেভিডএইচ আমি মন্তব্য প্রশংসা। উত্তরটিকে সামগ্রিকভাবে গ্রহণ করলে উত্তরটি জটিল অনুভূত হয় তবে পাঠকের পক্ষে কেবল উত্তরটির একটি ছোট অংশ নিয়েই তাকে উদ্বেগ করা উচিত যদি তাদের একমাত্র লক্ষ্য অন্য একটি গিথুব পরিচয় যুক্ত করা হয় - তবে বাকি অংশগুলির সমস্ত অংশ উত্তরটি আপনাকে সাধারণভাবে এসএসএইচ কীগুলি পরিচালনা করার জন্য একটি দৃ solution় সমাধানের সাথে সেটআপ করার উদ্দেশ্যে এবং এটি সম্পূর্ণ alচ্ছিক।
আপনাকে ধন্যবাদ

আমি মনে করি এটি হওয়া git clone github.com-otheruser:someorg/somerepo.gitদরকার git clone git@github.com-otheruser:someorg/somerepo.git(যোগ করা git@)। অন্ততপক্ষে, এটাই আমার দরকার ছিল।
কমন্সওয়্যার

@ কমন্সসওয়ালা ব্যবহারকারীকে নির্দিষ্ট করার মতো সমস্ত কমান্ড লাইনের বিকল্পগুলি এসএসএইচ কনফিগারেশনেও করা যেতে পারে। উদাহরণস্বরূপ: Host github.com(নিউলাইন) User git(নিউলাইন)IdentityFile ...
আপনাকে ধন্যবাদ

24

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

উপরের সংক্ষিপ্ত বিবরণটি নীচের ব্লগ পোস্টে সৌজন্যে।

আমি এই ব্যাখ্যাটি সবচেয়ে পরিষ্কার খুঁজে পেয়েছি। এবং এটি আমার পক্ষে কমপক্ষে এপ্রিল ২০১২ পর্যন্ত কাজ করে।

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/


1
আপনার সম্ভবত চালনার দরকার হবে $ ssh-add ~/.ssh/id_rsa_COMPANY- ত্রুটিটি
প্যাট

22

Http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and- Multipleple-accounts/ এ বিশদ Multipleple-accounts/ এ লিখিত আমার পক্ষে খুব ভাল কাজ করে।

এই পৃষ্ঠা থেকে:

$ touch ~/.ssh/config

তারপরে সেই ফাইলটিকে এমন কিছু হিসাবে সম্পাদনা করুন (অ্যাকাউন্টে প্রতি একটি প্রবেশ):

#Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

Host github-COMPANY
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_COMPANY

8
আমি আরও নোট করব যে ক্লোন করার সময় "github.com" বা "github-COMPANY" ব্যবহার করা দরকার (এবং সম্ভবত অন্যান্য কমান্ড) git clone git@github-COMPANY/repo/name.gitসঠিক ssh কীটি পেতে চাই ।
হেল্লাতান

@ ডিটান: যদি আমাকে https- তে ক্লোন করতে হয় তবে আমি কীভাবে এটি বাস্তবায়ন করব? git clone https://github-COMPANY/GitUserName/projectname.gitকাজ মনে হচ্ছে না। Github.com ব্যবহার করে ডিফল্ট কীটি ঠিক কাজ করে।
আইজাক নেউকিট্টেপাস

1
@ আইস্যাকআরম্যান্ট, আপনার কি সম্পূর্ণরূপে https ছাড়িয়ে যেতে হবে? প্রতিবার যখন আপনি টান / ধাক্কা দিতে চান তখন আপনাকে আপনার ব্যবহারকারীর শংসাপত্রগুলি ইনপুট করতে হবে। আপনি গিট: //github-COMPANY... প্রোজেক্টনাম.git করতে পারলে সেরা হবে। https কলটির জন্য কোনও ত্রুটি বার্তা আছে?
হেল্লাতান

@ ডিটান: আমার কাছে দৃশ্যত আমার জন্য খুলে দেওয়া সত্ত্বেও 22 পোর্ট নিয়ে আমার কিছু সমস্যা ছিল। ssh: connect to host github.com port 22: Bad file number fatal: The remote end hung up unexpectedly। https এ পর্যন্ত একমাত্র উপায় ছিল। $ git clone https://github-USER/UserName/test_project_user.git Cloning into test_project_user... error: Couldn't resolve host 'github-USER' while accessing https://github-USER/N UserName/test_project_user.git/info/refs fatal: HTTP request failed আমি নিশ্চিত নই যে এটি কনফিগার ফাইল বা যেভাবে আমি আপনার গিট কলটি https এর সাথে অনুকরণ করার চেষ্টা করছি তার সাথে সম্পর্কিত হতে পারে।
আইজাক নেউকিট্টেপাস

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

13
  • ~ / .Ssh এ যান
  • কনফিগার্ড নামের একটি ফাইল তৈরি করুন (কোনও এক্সটেনশন নেই)
  • কনফিগারেশন ফাইলটি খুলুন এবং কোডগুলির নীচে যুক্ত করুন। (আপনার অ্যাকাউন্ট অনুযায়ী পরিবর্তন করুন)

    1. অ্যাকাউন্ট 1

      # account_1
      Host gitlab.com-account_1
      HostName gitlab.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_account_1
      
    2. অ্যাকাউন্ট 2

      # Account2
      Host gitlab.com-Account2
      HostName gitlab.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_Account2
      
    3. অ্যাকাউন্ট 3

      # Account_3
      Host github.com-Account3
      HostName github.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_Account_3
      
  • নীচে হিসাবে দূরবর্তী ইউআরএল যোগ করুন

    1. অ্যাকাউন্ট 1

      git remote add origin git@gitlab.com-account_1:group_name/repo_name.git
      
    2. অ্যাকাউন্ট 2

      git remote add origin git@gitlab.com-Account2:group_name/repo_name.git
      
    3. অ্যাকাউন্ট 3

      git remote add origin github.com-Account3:github_username/repo_name.git
      

নিশ্চিত করুন যে ssh কী প্রজন্মের সময় আপনি তৈরি করেছেন আইডেন্টিটি ফাইলের নাম একই রকম।


আপনি দয়া করে ব্যাখ্যা করতে পারেন কেন আপনি ব্যবহার করেন PreferredAuthentications publickey?
অলিভার পিয়ারমাইন

@ অলিভার পিয়ারমেন এখানে আমি ssh কে বলছি যে প্রমাণীকরণের জন্য আমাদের পছন্দের পদ্ধতিটি পাবলিককি। আপনি পছন্দের প্রমাণীকরণে পাসওয়ার্ড ব্যবহার করতে পারেন তবে প্রমাণীকরণের জন্য আপনাকে পাসওয়ার্ড দিতে হবে।
প্রণব ভিআর

1
উত্তরটি প্রনভ ভিআরকে উপভোগ করুন, মনে হচ্ছে আমি একইটি ব্যবহার করতে চাই :-)
অলিভার পারমাইন

11

আমি "সক্রিয়" হতে চাই এমন যে কোনও অ্যাকাউন্টে আমাকে স্যুইচ করতে শেল স্ক্রিপ্ট ব্যবহার করি। মূলত আপনি একটি নতুন শুরু থেকে শুরু করুন, একটি অ্যাকাউন্ট সঠিকভাবে কনফিগার করুন এবং কাজ করুন, তারপরে এই ফাইলগুলি যথাযথ উপসর্গের সাথে একটি নামে সরিয়ে দিন। তারপরে আপনি "github" কমান্ডটি ব্যবহার করতে পারেন, বা "gitxyz" স্যুইচ করতে:

# my github script
cd ~/.ssh

if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ]
then
    ; 
else 
    echo "Error: missing new files"
    exit 1
fi 

# Save a copy in /tmp, just in case
cp id_rsa /tmp
cp id_rsa.pub /tmp
cp config /tmp
echo "Saved old files in /tmp, just in case"

rm id_rsa
rm id_rsa.pub
rm config
echo "Removed current links/files"

ln git_dhoerl id_rsa
ln git_dhoerl.pub id_rsa.pub
ln config_dhoerl config

git config --global user.email "dhoerl@<company>.com"
git config --global github.user "dhoerl"        
git config --global github.token "whatever_it_is"

ssh-add -D

আমি এই সঙ্গে মহান ভাগ্য ছিল। আমি এক্সকোডে একটি রান স্ক্রিপ্টও তৈরি করেছি (আপনার ম্যাক ব্যবহারকারীদের জন্য) সুতরাং আমার প্রজেক্টটি তৈরি করতে না পারলে যদি না আমার সঠিক সেটিং না থাকে (যেহেতু এটি গিট ব্যবহার করে):

নির্ভরশীলতার পরে স্ক্রিপ্ট রান করুন (শেল হিসাবে / বিন / কেএসএস ব্যবহার করে):

if [ "$(git config --global --get user.email)" != "dhoerl@<company>.com" ]
then
    exit 1
fi

সম্পাদনা: নতুন ফাইলের অস্তিত্বের জন্য পরীক্ষা যুক্ত করা হয়েছে এবং নীচের @naomik দ্বারা মন্তব্য করার জন্য পুরানো ফাইলগুলি / tmp এ অনুলিপি করা হয়েছে।


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

1
এটি একটি দুঃস্বপ্ন। কেউ বুঝতে যে তাদের আগে এই স্ক্রিপ্ট চালাতে সমস্যা হলে id_rsaএবং id_rsa.pubকী মুছে যাবে চায়-বস্তুতঃ তারা দূরবর্তী লক আউট হতে পারে।
আপনাকে ধন্যবাদ

@naomik স্ক্রিপ্টটি নতুন ফাইলগুলির জন্য প্রথমে পরীক্ষা করতে এবং / টিএমপি-তে পুরানো ফাইলগুলি সংরক্ষণ করার জন্য আপডেট করেছে
ডেভিড এইচ

10

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

  1. বিদ্যমান এসএসএস কীগুলির জন্য চেক করুন: টার্মিনালটি খুলুন এবংls -al ~/.ssh
    এক্সটেনশন সহবিদ্যমান এসএস কীগুলিরফাইলগুলিদেখতে / তালিকাবদ্ধ করতে এই কমান্ডটি চালান.pubআপনার এসএস কীগুলি যাতে আপনারঅ্যাকাউন্টpersonalএবংworkঅ্যাকাউন্টেরজন্য দুটি থাকে। যদি কেবল একটি বা কেউ না থাকে তবে অন্যান্য সময় উত্পন্ন করার সময় এটি এড়িয়ে যায়।

    - এসএস কী তৈরি করা হচ্ছে : গিথুব এ লগইন করুন (হয় ব্যক্তিগত বা কাজের অভিযুক্ত)) সেটিংসে নেভিগেট করুনএবং সম্পর্কিত ইমেলটি অনুলিপি করুন।
    এখন টার্মিনালে ফিরে যান এবং চালানssh-keygen -t rsa -C "the copied email", আপনি দেখতে পাবেন:

    পাবলিক / প্রাইভেট আরএসএ কী জুড়ি উত্পন্ন করছে।
    কী (/.../.ssh/id_rsa) সংরক্ষণ করতে হবে সেই ফাইলটি প্রবেশ করান:


    কী উত্পন্ন হওয়ার জন্য হ'ল ডিফল্ট নাম তাই পাথটি অনুলিপি করুন এবং নামকরণ করুন, যেমন /.../.ssh/id_rsa_work কাজের অ্যাকাউন্টের জন্য উত্পাদিত হলে id_rsa । একটি পাসওয়ার্ড সরবরাহ করুন বা উপেক্ষা করতে কেবল প্রবেশ করুন এবং, আপনি এর মতো কিছু পড়বেনকীটির র্যান্ডোমার্ট চিত্রটি: এবং চিত্রটি। সম্পন্ন.
    আপনার দ্বিতীয় গিথব অ্যাকাউন্টের জন্য আরও একবার এই পদক্ষেপটি পুনরাবৃত্তি করুন। ওভাররাইটিং এড়াতে আপনি সঠিক ইমেল ঠিকানা এবং একটি পৃথক ssh কী নাম (যেমন id_rsa_personal) ব্যবহার করেছেন তা নিশ্চিত করুন।
    এই পর্যায়ে, আপনার ls -al ~/.sshআবার চলার সময় দুটি ssh কী দেখতে হবে ।
  2. GitHub অ্যাকাউন্টের সাথে ssh কী সংযুক্ত করুন: পরবর্তী পদক্ষেপটি হ'ল ssh কীগুলির একটি অনুলিপি করা, এটি চালানো কিন্তু আপনার নিজের ssh কী নামটি pbcopy < ~/.ssh/id_rsa_work.pubপ্রতিস্থাপন করা : id_rsa_work.pubআপনি যা বলেছিলেন তার সাথে প্রতিস্থাপন করুন ।
    এখন যেহেতু আমাদের এসএস কীটি ক্লিপবোর্ডে অনুলিপি করা হয়েছে, গিথুব অ্যাকাউন্টে ফিরে যান [আপনি যে অনুলিপি করা ssh কীটি ব্যবহার করা হয়েছে তা যদি আপনি অ্যাকাউন্টে লগ ইন করেছেন তা নিশ্চিত করুন id_rsa_work] এবং
    সেটিংস - এসএসএইচ এবং জিপিজি কীগুলিতে নেভিগেট করুন এবং নতুন এসএসএইচ কী বোতামটি ক্লিক করুন click ( নতুন জিপিজি কী বিটিডব্লু নয়: ডি)
    এই কীটির জন্য কিছু শিরোনাম দিন, কীটি আটকে দিন এবং এসএসএইচ কীতে ক্লিক করুন। আপনি এখন ssh কী সফলভাবে যোগ করেছেন বা লক্ষ্য করেছেন যে এটি সেখানে ভাল হয়েছে (বা আপনি একটি ত্রুটি পেয়েছেন কারণ আপনি নতুন জিপিজি কীটি পরিবর্তে নির্বাচন করেছেন ) নতুন এসএসএইচ কী নির্বাচন করেছেন : ডি)।
  3. GitHub অ্যাকাউন্টের সাথে ssh কী সংযুক্ত করুন : আপনার দ্বিতীয় অ্যাকাউন্টের জন্য উপরের পদক্ষেপটি পুনরাবৃত্তি করুন।
  4. গ্লোবাল গিট কনফিগারেশন সম্পাদনা করুন: সর্বশেষ পদক্ষেপ হ'ল গ্লোবাল কনফিগারেশন ফাইলটি সমস্ত গিথুব অ্যাকাউন্ট সম্পর্কে সচেতন (তা বলা)।
    চালান git config --global --edit, সম্পাদনা করার জন্য এই বিশ্বব্যাপী ফাইল যদি এই তেজ প্রর্দশিত এবং আপনি এটি কিভাবে ব্যবহার করতে জানি না, প্রেস iসন্নিবেশ মোড, সম্পাদনা নিচে হিসাবে ফাইল, এবং Esc টিপুন দ্বারা অনুসরণ প্রবেশ করতে :wqমোড সন্নিবেশ প্রস্থান:

    [inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true

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


তাদের উত্তরগুলির জন্য ট্যাগগুলির অনুমতি দেওয়া উচিত, এটি ম্যাক ওএসের জন্য।
ব্যবহারকারী 4015990

5

বিভ্রান্তি এড়াতে সহজ এবং সহজ সমাধান ..

উইন্ডোজ ব্যবহারকারীরা বিভিন্ন প্রকল্পের জন্য একাধিক বা বিভিন্ন গিট অ্যাকাউন্ট ব্যবহার করতে পারেন।

নিম্নলিখিত পদক্ষেপগুলি: কন্ট্রোল প্যানেলে যান এবং শংসাপত্র ব্যবস্থাপকের জন্য অনুসন্ধান করুন। তারপরে শংসাপত্র ব্যবস্থাপক -> উইন্ডোজ শংসাপত্রগুলিতে যান

এখন গিটটি সরান : জেনেরিক শংসাপত্রের শিরোনামের অধীনে https // github.com নোড

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

আপনি যখন অন্য অ্যাকাউন্টের সাথে কোনও সমস্যার মুখোমুখি হন একই প্রক্রিয়া করুন।

ধন্যবাদ

চিত্র দেখুন


4

প্রতিটি রেপোর শংসাপত্র ব্যবহার করে উইন্ডোজের জন্য এটি সন্ধান করে:

cd c:\User1\SomeRepo
git config --local credential.https://github.com.user1 user1
git config --local credential.useHttpPath true
git config --local credential.helper manager
git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

শংসাপত্রের বিন্যাস। https://github.com । শংসাপত্রের জন্য শংসাপত্রের সহায়তা সহায়কটিকে বলে। 'UseHttpPath' শংসাপত্রের ব্যবস্থাপককে শংসাপত্রের জন্য পথটি ব্যবহার করতে বলে। যদি UseHttpPath বাদ দেওয়া হয় তবে শংসাপত্র ব্যবস্থাপক https://github.com এর জন্য একটি শংসাপত্র সংরক্ষণ করবেন । যদি এটি অন্তর্ভুক্ত থাকে তবে শংসাপত্র ব্যবস্থাপক একাধিক শংসাপত্র সংরক্ষণ করবেন, যা আমি সত্যিই চেয়েছিলাম।


2

আমি এই রত্নটি খুব দরকারী বলে মনে করেছি: sshwitch

https://github.com/agush22/sshwitch
http://rubygems.org/gems/sshwitch

এটি ssh কীগুলি স্যুইচআউট করতে সহায়তা করে। প্রথমে সবকিছু ব্যাক আপ করতে মনে রাখবেন!

কমিটদের সঠিক ইমেল ঠিকানা যুক্ত রয়েছে কিনা তা নিশ্চিত করার জন্য, আমি নিশ্চিত করেছিলাম যে ~ / .gitconfig ফাইলটির সঠিক ইমেল ঠিকানা ছিল।


2

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

#this store the password permanently
$ git config --global credential.helper wincred

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


2

সবচেয়ে সহজ এবং সোজা পদ্ধতি (আইএমএইচও) - কোনও কনফিগার ফাইল খুব বেশি ঝামেলা নয়

শুধু অন্য ssh কী তৈরি করুন।

ধরা যাক আপনার কাছে নতুন কাজ গিটহাব অ্যাকাউন্ট রয়েছে, কেবল এটির জন্য একটি নতুন কী তৈরি করুন:

sh-keygen -t rsa -C "email@work_mail.com" -f "id_rsa_work_user1"`

এখন আপনার পুরানো এবং নতুনটি থাকা উচিত, এগুলি দেখতে, চালানোর জন্য:

ls -al ~/.ssh

আপনার উপরেরটি একবার চালানো দরকার।

এখন থেকে, প্রতিবার আপনি দুজনের মধ্যে স্যুইচ করতে চান, কেবল চালান:

ssh-add -D
ssh-add ~/.ssh/id_rsa_work_user1 #make to use this without the suffix .pub

পুরানোটির স্যুইচ করার জন্য, আবার চালনা করুন:

 ssh-add -D
 ssh-add ~/.ssh/<previous id_rsa>

1

আরেকটি সহজ উপায় হ'ল একাধিক ডেস্কটপ অ্যাপ্লিকেশন ব্যবহার করা, যেমন আমি যা করছি, গিথুব ডেস্কটপে অ্যাকাউন্ট অ্যাকাউন্ট ব্যবহার করি, যখন গিথুব ক্রাকেনে বি অ্যাকাউন্ট ব্যবহার করা হয়



1

আপনি ~/.ssh/configএখানে উল্লিখিত ফাইলটির সাথে গোলযোগ করতে না চান , আপনি পরিবর্তে অন্য git config core.sshCommand "ssh -i ~/.ssh/custom_id_rsa"কোনও অ্যাকাউন্ট থেকে কমিট করতে চান এমন রেপো চালাতে পারেন।

বাকি সেটআপটি একই রকম:

  1. দ্বিতীয় অ্যাকাউন্টের জন্য একটি নতুন এসএসএইচ কী তৈরি করুন ssh-keygen -t rsa -f ~/.ssh -f ~/.ssh/custom_id_rsa

  2. আপনার অন্যান্য অ্যাকাউন্টের সাথে গিথুব এ সাইন ইন করুন, https://github.com/settings/keys এ যান এবং এর সামগ্রীগুলি পেস্ট করুন~/.ssh/custom_id_rsa.pub

  3. আপনি HTTPS এর পরিবর্তে রিমোট url হিসাবে এসএসএইচ ব্যবহার করছেন তা নিশ্চিত করুন: git remote set-url origin git@github.com:upstream_project_teamname/upstream_project.git


0

ব্যক্তিগত এবং কাজের জন্য আপনাকে দুটি পৃথক অ্যাকাউন্ট বজায় রাখতে হবে না। আসলে, গিথুব আপনাকে একটি একক অ্যাকাউন্ট বজায় রাখার পরামর্শ দেয় এবং আপনাকে উভয়কেই মার্জ করতে সহায়তা করে।

একত্রে একাধিক অ্যাকাউন্ট বজায় রাখার দরকার নেই তা স্থির করে নিচের লিঙ্কটি অনুসরণ করুন।

https://help.github.com/articles/merging-multiple-user-accounts/


0

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

আপনার কেবল দরকার:

1) আপনার প্রতিটি অ্যাকাউন্টের জন্য আলাদা আলাদা নাম এবং অবস্থানের জন্য এসএসএইচ পাবলিক এবং প্রাইভেট কী জুড়ি উত্পন্ন করুন~/.ssh

2) উত্পন্ন পাবলিক কীগুলি Settings>> SSH and GPG keys>> এরNew SSH Key অধীনে সংশ্লিষ্ট অ্যাকাউন্টে যুক্ত করুন

এসএসএইচ তৈরি করতে সর্বজনীন এবং ব্যক্তিগত কী দম্পতি নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

cd ~/.ssh
ssh-keygen -t rsa -C "email@work.com" -f "id_rsa_WORK"
ssh-keygen -t rsa -C "email@gmail.com" -f "id_rsa_PERSONAL"

উপরের কমান্ডগুলির ফলে id_rsa_WORKএবং id_rsa_WORK.pubফাইলগুলি আপনার কাজের অ্যাকাউন্টের জন্য তৈরি করা হবে (প্রাক্তন - git.work.com) এবংid_rsa_PERSONAL এবং id_rsa_PERSONAL.pubআপনার জন্য তৈরি করা হবে ব্যক্তিগত অ্যাকাউন্ট (প্রাক্তন - github.com)।

একবার তৈরি হয়ে গেলে, প্রতিটি পাবলিক ( *.pub) ফাইল থেকে সামগ্রীটি অনুলিপি করুন এবং প্রতিটি অ্যাকাউন্টের জন্য পদক্ষেপ 2 করুন।

PS : ~/.ssh/configআপনার দুটি অ্যাকাউন্টের হোস্টের নাম পৃথক থাকলে অন্য উত্তরে উল্লিখিত ফাইলের অধীনে প্রতিটি গিট অ্যাকাউন্টের জন্য হোস্ট এন্ট্রি করা প্রয়োজন হয় না ।


আপনি কীভাবে আপনার স্থানীয় পিসিতে দুটি অ্যাকাউন্টের মধ্যে স্যুইচ করবেন?
ব্যবহারকারী 4015990

1
সুইচ করার দরকার নেই। যখনই আপনি স্থানীয় কোনও রেপো ক্লোন করেন আপনার অ্যাকাউন্টে তথ্য আপনার স্থানীয় রেপোতে গিট দ্বারা সংরক্ষণ করা হবে। সুতরাং আপনি যখনই কোনও গিট পুশ করেন বা লোকাল রেপোর ভিতরে টানেন তবে উপরের কনফিগারেশনটি কোন অ্যাকাউন্টটি বিবেচনা করতে হবে তা সনাক্ত করবে।
সাহিল ছাবরা

0

আপনার যদি ডাব্লুএসএল ইনস্টল করা থাকে তবে আপনার দুটি পৃথক গিট অ্যাকাউন্ট থাকতে পারে - একটি ডাব্লুএসএল এবং একটি উইন্ডোতে।


0

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

  • মেশিনে পাবলিক / প্রাইভেট এসএসএস কী তৈরি করুন
  • গীতল্যাব / গিথুব ইউআই ইন্টারফেসে সর্বজনীন কীটি অনুলিপি করুন (যে কেউ সেন্টিমিড লাইনের মাধ্যমে কীভাবে করবেন সেগুলি একটি বিনামূল্যে বিয়ার পান ...)
  • নিশ্চিত করুন যে আপনি গিটের মাধ্যমে রেপো ক্লোন করেছেন এবং HTTP url না
  • গিট কমান্ডের একই উপসর্গটির ধ্রুবক টাইপ করা এড়াতে গিট উফর সেট করুন
  • গিট কমিট করার সময় সর্বদা লেখক এবং ইমেল পতাকা ব্যবহার করুন use
  • গিটকে স্বাভাবিক হিসাবে ব্যবহার করুন আপনি এটি করবেন

এই সমস্ত নিম্নলিখিত হিসাবে:

 # create the public / private key credentials on that specific machine
 ssh-keygen -t rsa -b 4096 -C "<<you>>@org.net" -f ~/.ssh/id_rsa.<<you>>.`hostname -s`

 # setup your public key in the gitlab ui 
 cat ~/.ssh/id_rsa.<<you>>.`hostname -s`

 # make sure you clone the repo via the git and not http url
 git clone git@git.in.org.net:org/some-repo.git

 # set the git alias to avoid constant typing of the repeating prefix to the git cmd
 alias git='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.<<you>>.`hostname -s`" git'

 # during git commit ALWAYS use the author and e-mail flags
 git add --all ; git commit -nm "$git_msg" --author "YourFirstName YourLastName <you@phz.fi>"

 # use git as normal
 git fetch --all; git pull --all 

0
  1. যে ডিরেক্টরিতে আপনি নিজের পরিবর্তনগুলি একটি ভিন্ন গিটহাব অ্যাকাউন্টে ঠেকাতে চান সেই ডিরেক্টরিতে নেভিগেট করুন।
  2. আপনার টার্মিনাল / কমান্ড লাইনে একটি নতুন এসএসএইচ কী তৈরি করুন।

    ssh-keygen -t rsa -C "আপনার ইমেল ঠিকানা"

  3. নিম্নলিখিতগুলি তখন প্রদর্শিত হবে:

    সরকারী / বেসরকারী আরএসএ কী জুড়ি তৈরি হচ্ছে। কী (/ home/your_username/.ssh/id_rsa) কী সংরক্ষণ করতে হবে তার ফাইলটি প্রবেশ করুন:

ফাইলটির জন্য সনাক্তকারী নাম অনুসারে পাথটি অনুলিপি করুন এবং আটকান:

/home/your_username/.ssh/id_rsa_personal

4) এটি নিম্নলিখিতগুলির জন্য আপনাকে জিজ্ঞাসা করবে:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

৫) আপনার স্থানীয় মেশিনে থাকা সমস্ত এসএসএইচ কী দেখতে আপনি এখন নীচের কমান্ডটি টাইপ করতে পারেন:

ls -al ~/.ssh

আপনার নতুন এসএসএইচ কী ফাইলটি দেখতে পারা উচিত। আপনি আমার এক হিসাবে দেখতে পাচ্ছেন আমার কাছে id_rsa_test এবং id_rsa_personal.pub উভয়ই রয়েছে।

drwx------  2 gmadmin gmadmin 4096 Nov 16 22:20 .
drwxr-xr-x 42 gmadmin gmadmin 4096 Nov 16 21:03 ..
-rw-------  1 gmadmin gmadmin 1766 Nov 16 22:20 id_rsa_personal
-rw-r--r--  1 gmadmin gmadmin  414 Nov 16 22:20 id_rsa_personal.pub
-rw-r--r--  1 gmadmin gmadmin  444 Nov  6 11:32 known_hosts

)) এরপরে আপনার এসএসএইচ কীটি অনুলিপি করতে হবে যা id_rsa_personal.pub ফাইলে সংরক্ষণ করা আছে। আপনি এটি আপনার পছন্দের পাঠ্য সম্পাদককে খুলতে পারেন। আমি বর্তমানে অ্যাটম ব্যবহার করছি তাই আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে ফাইলটি খুললাম:

atom ~/.ssh/id_rsa_personal.pub

তারপরে আপনি এর অনুরূপ কিছু পাবেন:

এসএসএস-আরএসএ এএবি 3 এইচকেএলএলসিসি 1 সাইক 2 ই এএএএডএকিএবিএএবিএএকিসিসিইউ 5 + ইল্টসক্কমকোএফ 3 এইচএনডি 7 ডি 6 সিজেডব্লু + ডিওয়ুট83আর / ডিসি01ই / ইজেএলসি 5 জেডফ্রিজি 18ডু ওউকিউপিটিভিএসইউসিএইচসিসিকিসিজেডক্লিজএইচসিএলক্লিজএইচসিএলসিএইচসিডিজিএইচসিডিজিএইচসিসিকিসিজেড 5

)) এটি অনুলিপি করুন এবং আপনার গিটহাব অ্যাকাউন্টে নেভিগেট করুন → সেটিংস → এসএসএইচ এবং জিপিজি কী 8) নতুন এসএসএইচ কীতে ক্লিক করুন। কীটি অনুলিপি করুন, এটিকে একটি শিরোনাম দিন এবং এটি যুক্ত করুন। 9) টার্মিনাল থেকে কী যুক্ত করুন

ssh-add ~/.ssh/id_rsa_personal
Enter passphrase for /home/your_username/.ssh/id_rsa_personal: 

10) ব্যবহারকারী এবং পাসওয়ার্ড কনফিগার করুন।

git config --global user.name "gitusername"
git config --global user.email "gitemail"

11) আমরা এখন প্রতিশ্রুতিবদ্ধ এবং ধাক্কা প্রস্তুত।

git init
git add .
git commit 
git push

0

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

আমি এখানে যে ত্রুটিটি পেয়েছিলাম তা হ'ল:

Warning: Permanently added the RSA host key for IP address '61:fd9b::8c52:7203' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

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

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করেছি, এটি কাজ করে:

ssh-add ~/.ssh/id_rsa_YOUR_COMPANY_NAME

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