বিভিন্ন অ্যাকাউন্ট এবং হোস্ট সহ একাধিক এসএস কী কীভাবে ব্যবহার করবেন


21

আমার একাধিক এসএস কী রয়েছে এবং বিটবাকেট এবং গিথুব এও আমার অ্যাকাউন্ট রয়েছে। আমি কখনই টান ব্যবহার করি তা আমাকে ত্রুটি দেয়

:/var/www/proj$ git pull origin master
conq: repository access denied.
fatal: The remote end hung up unexpectedly

বা আমি যদি বিটবাকেট ওয়েবসাইটটি শ্যাশ করি তবে এটি ত্রুটি দেয় গাধা পাবলিক কী অস্বীকার করে

:~$ ssh git@bitbucket.org
Permission denied (publickey).

আমি কীভাবে এটি সমাধান করতে পারি এবং বিভিন্ন অ্যাকাউন্ট সহ বিভিন্ন কী ব্যবহার করতে পারি।


উত্তর:


21

এটি সমস্ত ওয়েবসাইট এবং স্ট্যাকওভারফ্লো থেকে জড়ো করা হয়েছে, আশা করি এটি যারা নতুন এসএসএসে সহায়তা করবে তাদের সহায়তা করবে

যাতে আপনার অনেকগুলি এসএস কী থাকতে পারে

~/.ssh$ ls
yyy_id_rsa  yyy_id_rsa.pub  id_rsa  id_rsa.pub  known_hosts

দ্রষ্টব্য: আমাদের তখন ssh-এজেন্টে যুক্ত করা দরকার, সম্ভবত id_rsa যুক্ত হবে তাই আমাদের অন্যান্য ব্যক্তিগত কী যুক্ত করতে হবে

~/.ssh$ ssh-add yyy_id_rsa

এখন আমরা ssh- এজেন্টে উভয় ssh কী যুক্ত করেছি

আমাদের কাছে একটি বিটবাকেটের জন্য এবং একটি গিথাবের জন্য

সুতরাং আমরা এটির মতো একটি কনফিগার ফাইল তৈরি করি

~/.ssh$ nano config
Host bit-yyyuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/yyy_id_rsa
User yyyuser

Host bit-xxxuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
User xxxuser

Host git-xxxuser github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa
User xxxuser

দ্রষ্টব্য: আমি বিটবাকেটে 2 টি আলাদা অ্যাকাউন্টের জন্য 2 টি এবং কী গিথাবের জন্য একটি পৃথক কী ব্যবহার করছি।

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

পরিবর্তন git@bitbucket.orgyyyuser/yyyproject.gitকরার জন্যgit@bit-yyyuser:yyyuser/yyyproject.git

সুতরাং প্রকল্প ফোল্ডারে এবং দূরবর্তী url যুক্ত করুন

/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git

অন্যান্য প্রকল্পে

/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git

এখন আপনি ধাক্কা এবং সহজেই টানতে পারেন

:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
 * branch            master     -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$

এবং অন্য প্রকল্প

/var/www/xxxproject$ git push bitt ver1
To git@bit-xxxuser:xxxuser/xxxproject.git
 * branch            master     -> FETCH_HEAD
Already up-to-date.
:/var/www/xxxproject$ 

এখন আমি স্থানীয় মেশিনে গিথুব প্রকল্পটি পাই না তাই আমাদের প্রকল্পটি ক্লোন করা প্রয়োজন তবে ক্লোন করতে ইউআরএলটিতে আমাদের কিছুটা পরিবর্তন করা দরকার

আমাদের ইউআরএল এর মত

git@github.com:xxxuser/python.git

যেহেতু আমাদের এটি নির্দিষ্ট কীগুলির সাথে ক্লোন করতে হবে আমাদের কেবলমাত্র সংজ্ঞায়িত হোস্টের সাথে হোস্টের নাম পরিবর্তন করতে হবে

git@git-xxxuser:xxxuser/python.git

কনফিগারেশন ফাইল হিসাবে সংজ্ঞায়িত

এবং এখন আমরা ক্লোন করতে পারি

:/var/www/us$ git clone git@git-xxxuser:xxxuser/python.git
Cloning into 'python'...
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 75 (delta 18), reused 62 (delta 8)
Receiving objects: 100% (75/75), 6.29 KiB, done.
Resolving deltas: 100% (18/18), done.
:/var/www/us$ 

আমরা বিভিন্ন হোস্টের জন্য আলাদা আলাদা এসএস কী চিহ্নিত করেছি, একটি গিটের জন্য এবং একটি বিটবাকেটের জন্য এখন সিস্টেমটি জানে যে কোন হোস্টের সাথে কোন ssh কীগুলি ব্যবহার করতে হবে।

এখন আমরা সহজেই টানতে পারি, ঠেলাতে পারি।


যদি আমার গিট URL টি https ব্যবহার করে? যাইহোক যে কাজ?
জেলিন লুও

1

আমি এটির ~/.ssh/configমতো কনফিগার করি :

Host gitlab-as-thuc  
    HostName git.thuc.com
    User git
    IdentityFile ~/.ssh/id_rsa.thuc
    IdentitiesOnly yes

তারপরে গিট ইউআরএলে প্রকৃত ডোমেনের পরিবর্তে কাস্টম হোস্টনাম ব্যবহার করুন:

git remote add thuc git@gitlab-as-thuc:your-repo.git  

: আরও বিস্তারিত জানার জন্য অনুগ্রহ করে এখানে পড়ুন http://itblog.study.land/how-to-specify-different-ssh-keys-for-git-push-for-a-given-domain/

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