আকারে উঠছে
পৃথক গিথুব / বিটবাকেট / যে কোনও অ্যাকাউন্টের আওতায় গিট রেপো পরিচালনা করতে আপনার কেবল নতুন একটি এসএসএইচ কী তৈরি করতে হবে।
তবে আমরা আপনার দ্বিতীয় পরিচয় দিয়ে রেপোগুলি পুশ করা / টানা শুরু করার আগে, আমরা আপনাকে রূপ দিতে চাই - আসুন ধরে নেওয়া যাক আপনার সিস্টেমটি একটি সাধারণ 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==
ssh-add ~/.ssh/id_rsa_COMPANY
<br/> ssh- এজেন্টকে এটি ব্যবহারের জন্য অন্তর্ভুক্ত করতে বলার জন্য <<hr /> বিশ্রামটি উপরে উল্লিখিত টিউটোরিয়ালটি দিয়ে আমার পক্ষে ভাল কাজ করে।