এক ক্লায়েন্টের একাধিক এসএসএইচ ব্যক্তিগত কী ব্যবহার করার সর্বোত্তম উপায়


869

আমি বিভিন্ন সার্ভারে বা একই সার্ভারের বিভিন্ন অংশের সাথে সংযোগ রাখতে একাধিক ব্যক্তিগত কী ব্যবহার করতে চাই (আমার ব্যবহারগুলি হ'ল সার্ভারের সিস্টেম প্রশাসন, গিটের প্রশাসন এবং একই সার্ভারের মধ্যে সাধারণ গিট ব্যবহার)। আমি কেবল id_rsaফাইলগুলিতে কীগুলি স্ট্যাক করে রাখার চেষ্টা করেছি no

দৃশ্যত এটি করার সহজ সরল উপায় হ'ল কমান্ডটি ব্যবহার করা

ssh -i <key location> login@server.example.com 

এটা বেশ কষ্টকর।

এটি কিছুটা সহজ করে কীভাবে চলতে হবে সে সম্পর্কে কোনও পরামর্শ?


1
আমি এই নিবন্ধটি লিখেছি যা বিভিন্ন কনফিগারেশন এবং তাদের শক্তি / ত্রুটিগুলির গভীরতার সাথে যায়।
রাফি

উত্তর:


1233

আমার থেকে .ssh/config:

Host myshortname realname.example.com
    HostName realname.example.com
    IdentityFile ~/.ssh/realname_rsa # private key for realname
    User remoteusername

Host myother realname2.example.org
    HostName realname2.example.org
    IdentityFile ~/.ssh/realname2_rsa  # different private key for realname2
    User remoteusername

ইত্যাদি।


24
ধন্যবাদ র‌্যান্ডাল! আমি .ssh / কনফিগারেশনে কিছু খনন করেছিলাম এবং এটি পেয়েছি: github.com/guides/m Multiple-github-accounts আমাকে সঠিক দিক নির্দেশিত।
জাস্টিন

6
এটি দুর্দান্ত সাহায্য ছিল ( স্ট্যাকওভারফ্লো . com/ a/ 3828682/169153 ছাড়াও )। : আপনি ব্যবহার করতে চান তাহলে পুটিং কী এখানে এই দস্তাবেজটি অনুসরণ blog.padraigkitterick.com/2007/09/16/...
Urda

2
আমি এই পোস্টটি খুব সহায়ক বলে মনে করেছি। কনফিগার ফাইলটি তৈরি করার সময় আমার একটি ত্রুটি হয়েছিল আমি একটি কনফিগার ফাইল তৈরির জন্য "টাচ" কমান্ড চালানোর পরিবর্তে .ssh ফোল্ডারে একটি .txt ফাইল রাখি।
এম_এক্স_r

53
মনে রাখবেন যে এর জন্য আপনি একাধিক IdentityFileএন্ট্রিও নির্দিষ্ট করতে পারেন Host, যা সংযোগের পরে যথাযথভাবে চেষ্টা করা হয়।
স্কুবার্থ

12
IdentitiesOnly yes~ / .Ssh / id_rsa বা অন্য কোনও পরিচয় রোধ করতে ব্যবহার করুন । (এটি মূলত একটি সম্পাদনা ছিল)
ব্যবহারকারী 3338098

369

সংযোগের সময় আপনি পর পর একাধিক কী চেষ্টা করার জন্য এসএসকে নির্দেশ দিতে পারেন। এখানে কীভাবে:

$ cat ~/.ssh/config
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_old
IdentityFile ~/.ssh/id_ed25519
# ... and so on

$ ssh server.example.com -v
....
debug1: Next authentication method: publickey
debug1: Trying private key: /home/example/.ssh/id_rsa
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/example/.ssh/id_rsa_old
debug1: read PEM private key done: type RSA
....
[server ~]$

এই সার্ভারের সাথে কী কী কাজ করে তা আপনাকে নির্দিষ্ট করতে হবে না। এটি কেবল প্রথম কার্যকারী কীটি ব্যবহার করবে।

এছাড়াও যদি আপনি কোনও প্রদত্ত সার্ভার কীটি গ্রহণ করতে রাজি হন তবে আপনি কেবল একটি পাসফ্রেজ লিখবেন enter উপরে যেমনটি দেখা গেছে ssh এর পাসওয়ার্ডের জন্য একটি পাসওয়ার্ড জিজ্ঞাসা করার চেষ্টা করেনি .ssh/id_rsa

অবশ্যই এটি অন্যান্য উত্তরের মতো প্রতি সার্ভারের কনফিগারেশনকে ছাড়িয়ে যায় না, তবে কমপক্ষে আপনাকে সংযুক্ত থাকা সমস্ত এবং প্রতিটি সার্ভারের জন্য একটি কনফিগারেশন যুক্ত করতে হবে না!


12
এটি জিজ্ঞাসা করা প্রশ্নের একটি দুর্দান্ত সমাধান, তবে জিজ্ঞাসাকারী যে উদ্দেশ্যে প্রয়োজন তা পুরোপুরি পূরণ করেনি। আমার জন্য, এটি ঠিক সঠিক সমাধান ছিল এবং এটি "এক ক্লায়েন্টের একাধিক এসএসএইচ প্রাইভেট কীগুলি ব্যবহার করার সর্বোত্তম উপায়" এর প্রয়োজনীয়তার জন্য পুরোপুরি পূরণ করে।
ওয়েড

2
এটি কনফিগ ফাইলে হোস্ট ঘোষণার আওতায় কাজ করছে বলে মনে হচ্ছে না
মাকসিম লুজিক

29
এটি গিটের সাথে ভালভাবে কাজ করে না, যেমন আপনার কাছে দুটি গিথুব কী মোতায়েন রয়েছে, তালিকার প্রথমটি বৈধ এবং কাজ করবে তবে গিথুব অভিযোগ করবে যে সংগ্রহস্থলটি মেলে না।
অ্যাডাম রিস

এটি একটি আরও গতিশীল পদ্ধতির, নির্দিষ্ট পরিস্থিতিতে দুর্দান্ত কাজ করে। এর জন্য ধন্যবাদ
gbolo

7
আপনার যদি সেই সার্ভারগুলিতে ব্যর্থ 2ban এর মতো কিছু থাকে তবে সচেতন হন। আপনি সেই কারাগারগুলির মধ্যে একটিতে শেষ হতে পারেন ... অন্য কীগুলির দ্বারা উত্পন্ন ব্যর্থ চেষ্টার কারণে ...
পিক্কোলো

254

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

Host           friendly-name
HostName       long.and.cumbersome.server.name
IdentityFile   ~/.ssh/private_ssh_file
User           username-on-remote-machine

এখন আপনি বন্ধুত্বপূর্ণ-নাম ব্যবহার করে সংযোগ করতে পারেন:

ssh friendly-name

ওপেনএসএসএইচ ম্যান পৃষ্ঠাতে আরও কীওয়ার্ড পাওয়া যাবে । দ্রষ্টব্য: তালিকাভুক্ত কিছু কীওয়ার্ড ইতিমধ্যে আপনার / etc / ssh / ssh_config ফাইলে উপস্থিত থাকতে পারে ।


যদি আমি ইউজারকে ভুল না করে থাকি তবে আপনি সাধারণত @ হোস্টের সাথে সংযোগ করার সময় সরাসরি ইউআরএলটি নির্দিষ্ট করেন
1

3
আমি 'পোর্ট' কীওয়ার্ডটিও ব্যবহার করতে পছন্দ করি। আর একটি আকর্ষণীয় কীওয়ার্ড হ'ল 'স্ট্রাইকটহস্টকিচেকিং'।
ইথান

119

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

মনে করুন, আপনার সংস্থার গিটহাব অ্যাকাউন্টের ব্যবহারকারীর নামটি abc1234 । এবং ধরুন আপনার ব্যক্তিগত গিটহাব অ্যাকাউন্টের ব্যবহারকারীর নাম jack1234

এবং, ধরুন আপনি দুটি আরএসএ কী তৈরি করেছেন, নাম id_rsa_company এবং id_rsa_personal । সুতরাং, আপনার কনফিগারেশন ফাইলটি নীচের মত দেখাবে:

# Company account
Host company
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company

# Personal account
Host personal
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal

এখন, আপনি যখন কোম্পানির গিটহাব অ্যাকাউন্ট থেকে সংগ্রহস্থল (নামযুক্ত ডেমো) ক্লোনিং করছেন , সংগ্রহস্থল ইউআরএল এমন কিছু হবে:

Repo URL: git@github.com:abc1234/demo.git

এখন, কাজ করার সময় git cloneআপনার উপরের রেপোজিটরি ইউআরএলটি পরিবর্তন করুন:

git@company:abc1234/demo.git

কনফিগারেশন ফাইলে আমরা যেমন সংজ্ঞা দিয়েছি এখন github.com কীভাবে উপনাম "সংস্থা" এর সাথে প্রতিস্থাপন করা হবে তা লক্ষ্য করুন।

সিমিলারি, আপনাকে কনফিগারেশন ফাইলের সরবরাহ করা উলের উপর নির্ভর করে ব্যক্তিগত অ্যাকাউন্টে সংগ্রহস্থলের ক্লোন ইউআরএলটি সংশোধন করতে হবে।


10
আমি আশা করি আমি এই উত্তরটি একাধিকবার উজ্জীবিত করতে পারতাম ... সমস্যাটির কাছে যাওয়ার সঠিক উপায় এটি এবং এটি অন্যান্য বিকল্পের চেয়ে নিরাপদ এবং দ্রুত। আরও স্কেলযোগ্য ( একই হোস্টনামের জন্য আলাদা কীগুলি সংজ্ঞায়িত করার অনুমতি দেয় )
লোকারাড

4
আর সময় নষ্ট করবেন না, এটাই উত্তর। অনেক ধন্যবাদ.
লুইস মিলানিজ

2
আমি সত্যিই ইচ্ছুক আমি এই উত্তরটি আগে খুঁজে পেয়েছি ... তবে আগের চেয়ে ভাল দেরী, অনেক অনেক ধন্যবাদ!
হালদি

2
দুর্দান্ত ব্যাখ্যা! আমার জন্য নিখুঁত কাজ করে। এবং আপনি যদি উপনামটির সাহায্যে রেপো ক্লোন করতে ভুলে যান তবে আপনি প্রায়শই পরে মূলের দূরবর্তী url সম্পাদনা করতে পারেন।
tkahn

1
শুধুমাত্র অ্যাটেনসিওন প্রদান করুন কারণ কনফিগারেশন ফাইলটি অবশ্যই হবে (chmod 600)
ক্রিশ্চিয়ানো মাতোস

105
foo:~$ssh-add ~/.ssh/xxx_id_rsa

এটি যুক্ত করার আগে এটি পরীক্ষা করে দেখুন:

ssh -i ~/.ssh/xxx_id_rsa username@example.com

আপনার যদি ত্রুটি নিয়ে কোনও সমস্যা হয় তবে কখনও কখনও ফাইলটির সুরক্ষা পরিবর্তন করতে সহায়তা করে:

chmod 0600 ~/.ssh/xxx_id_rsa

4
এটি আমার মতে সর্বাধিক সংক্ষিপ্ত এবং মার্জিত সমাধান। মোহন মত কাজ!
আর্টুর

@ বাবু আপনি কি এটি আপনার বাশার্ক বা বাশ_প্রোফাইলে রাখতে পারবেন (বা ম্যাক সমতুল্য যা কিছু)?
T0xicCode

6
Chmod

আমার জন্য কবজির মতো কাজ করেছেন (এবং 0600 পারম সম্পর্কে ভুলে যাবেন না)।
Dmytro Uhnichenko

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

42
  1. এসএসএইচ কী তৈরি করুন:

    $ ssh-keygen -t rsa -C <email1@example.com>
    
  2. উত্পন্ন another SSH key:

    $ ssh-keygen -t rsa -f ~/.ssh/accountB -C <email2@example.com>
    

    এখন, দুই সার্বজনিক কী ( id_rsa.pub , accountB.pub ) হওয়া উচিত বিদ্যমান ~/.ssh/ডিরেক্টরি।

    $ ls -l ~/.ssh     # see the files of '~/.ssh/' directory 
    
  3. ~/.ssh/configনিম্নলিখিত বিষয়বস্তু সহ কনফিগারেশন ফাইল তৈরি করুন :

    $ nano ~/.ssh/config
    
    Host bitbucket.org  
        User git  
        Hostname bitbucket.org
        PreferredAuthentications publickey  
        IdentityFile ~/.ssh/id_rsa  
    
    Host bitbucket-accountB  
        User git  
        Hostname bitbucket.org  
        PreferredAuthentications publickey  
        IdentitiesOnly yes  
        IdentityFile ~/.ssh/accountB  
    
  4. defaultঅ্যাকাউন্ট থেকে ক্লোন করুন ।

    $ git clone git@bitbucket.org:username/project.git
    
  5. accountBঅ্যাকাউন্ট থেকে ক্লোন করুন ।

    $ git clone git@bitbucket-accountB:username/project.git
    

এখানে আরও দেখুন


24

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

পদক্ষেপগুলি নীচে রয়েছে:

  1. $ ssh-agent bash
  2. $ ssh-add /path.to/private/key যেমন ssh-add ~/.ssh/id_rsa
  3. দ্বারা যাচাই করুন $ ssh-add -l
  4. $ssh -v <host url>উদাহরণস্বরূপ এটি পরীক্ষা করুনssh -v git@assembla.com

4
ssh-agentকয়েক বছর ধরে ব্যবহার করার পরে, আমি সম্প্রতি gnome-keyringআমার i3ডাব্লুএম এর মধ্যে জিনোম ব্যবহার করতে স্যুইচ করেছি । কারণটি সহজ: জিনোমের কেরিং ম্যানেজার স্বয়ংক্রিয়ভাবে আমাকে স্মরণ না করে এসএসএস কীগুলি যুক্ত এবং মুছে ফেলা পরিচালনা করে ssh-add। এগুলি আনলক করার জন্য আমাকে একটি একক পাসওয়ার্ড সরবরাহ করার পাশাপাশি (এবং সুরক্ষার জন্য একটি নির্দিষ্ট সময়ে সময়সীমা)। প্রতিটি তার নিজস্ব. যেহেতু আমি আর্কে জিনোম সেটিংস ব্যবহার করি তাই এটি আমার সেটআপের সাথে প্লাগ এন প্লে। আপনি যদি অ্যান্টি-গ্নোম হন তবে এই মন্তব্যটি উপেক্ষা করুন।
eduncan911

@ এডুঙ্কান ৯১১, আমি সম্মত হই যে জিনোম-কীরিং সহায়ক হতে পারে তবে এটি সত্যিই এড 25519 কীগুলি পরিচালনা করতে পারে না, যাতে আমার জন্য স্টার-স্টার্টার না হয়। আপডেট: আমি উইকি.আরকলিনিক্স ডটকম / ইনডেক্স.এফপি / জিএনোম / from থেকে দেখতে পাচ্ছি যে এটি এখন সিস্টেমের এসএসএল-এজেন্ট ব্যবহার করে যাতে আর সমস্যা হয় না।
ব্রায়ান মিন্টন

15

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

আমি নীচে দুটি পৃথক ssh কনফিগারেশন তৈরি করেছি।

Host personal.bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /Users/username/.ssh/personal
Host work.bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /Users/username/.ssh/work

এখন যখন আমার কাজের অ্যাকাউন্ট থেকে একটি সংগ্রহস্থল ক্লোন করতে হয়েছিল - কমান্ডটি নিম্নরূপ ছিল।

git clone git@bitbucket.org:teamname/project.git

আমাকে এই আদেশটি এখানে পরিবর্তন করতে হয়েছিল:

git clone git@**work**.bitbucket.org:teamname/project.git

একইভাবে আমার ব্যক্তিগত অ্যাকাউন্ট থেকে ক্লোন কমান্ডটি পরিবর্তন করতে হয়েছিল

গিট ক্লোন গিট @ ব্যক্তিগত .bitbucket.org: নাম / ব্যক্তিগতপ্রজেক্ট

পড়ুন এই লিঙ্কে আরও তথ্যের জন্য।



11

এখন, গিটের সাম্প্রতিক সংস্করণ সহ, আমরা সংগ্রহস্থল নির্দিষ্ট গিট কনফিগারেশন ফাইলে sshCommand নির্দিষ্ট করতে পারি ।

  [core]
      repositoryformatversion = 0
      filemode = true
      bare = false
      logallrefupdates = true
      sshCommand = ssh -i ~/.ssh/id_rsa_user   
   [remote "origin"]
      url = git@bitbucket.org:user/repo.git
      fetch = +refs/heads/*:refs/remotes/origin/*

1

গুরুত্বপূর্ণ: আপনাকে অবশ্যই ssh- এজেন্ট শুরু করতে হবে

নীচে ssh-add ব্যবহার করার আগে আপনাকে অবশ্যই ssh-এজেন্ট (এটি ইতিমধ্যে চলমান না থাকলে) শুরু করতে হবে:

eval `ssh-agent -s` # start the agent

ssh-add id_rsa_2 # where id_rsa_2 is your new private key file

নোট করুন যে alভাল কমান্ড উইন্ডোতে জিআইটি ব্যাশে এজেন্ট শুরু করে। অন্যান্য পরিবেশ এসএসএইচ এজেন্ট শুরু করতে কোনও বৈকল্পিক ব্যবহার করতে পারে।


1

আপনি configআপনার ~/.sshফোল্ডারে নামের একটি কনফিগারেশন ফাইল তৈরি করতে পারেন । এটি থাকতে পারে:

Host aws
    HostName *yourip*
    User *youruser*
    IdentityFile *idFile*

এটি আপনাকে এই জাতীয় মেশিনে সংযোগ করার অনুমতি দেবে

 ssh aws

1

উবুন্টু 18.04-তে কিছু করার নেই।

সফলভাবে একটি দ্বিতীয় এসএস কী তৈরি করার পরে সিস্টেম প্রতিটি সংযোগের জন্য একটি মিলে যাওয়া এসএসএ কীটি অনুসন্ধান করার চেষ্টা করবে।

কেবল পরিষ্কার হওয়ার জন্য আপনি এই আদেশগুলি দিয়ে একটি নতুন কী তৈরি করতে পারেন

# generate key make sure you give it a new name (id_rsa_server2)
ssh-keygen 
# make sure ssh agent is running
eval `ssh-agent`
# add the new key
ssh-add ~/.ssh/id_rsa_server2
# get the public key to add it to a remote system for authentication
cat ~/.ssh/id_rsa_server2.pub

1

GITHUB এ একাধিক কী জোড়া

1.0 এসএসএইচ কনফিগ ফাইল

1.1 তৈরি করুন। / .Ssh / কনফিগার করুন

1.2 chmod 600 ~ / .ssh / config (আবশ্যক)

ফাইলের মধ্যে নিম্নলিখিত 1.3 ইনপুট:

হোস্ট পিজ্জা

হোস্টনাম github.com

পছন্দের প্রমাণীকরণের পাবলিকিকে # alচ্ছিক

আইডেন্টিটি ফাইল। / .এসএসএইচ / প্রাইভেটকি 1

কেস এ: নতুন গিট ক্লোন করুন

গিট ক্লোন করতে এই আদেশটি ব্যবহার করুন:

it গিট ক্লোন গিট @ পিজ্জা: yourgitusername / pizzahut_repo.git

দ্রষ্টব্য: আপনি যদি ভবিষ্যতে .ssh / কনফিগারেশনের হোস্টের নাম "পিজ্জা" পরিবর্তন করতে চান তবে গিট ক্লোন্ড ফোল্ডারে যান, .git / কনফিগার ফাইল url লাইনটি সম্পাদন করুন (কেস বি দেখুন)

কেস বি: ইতিমধ্যে গিট ক্লোন ফোল্ডার রয়েছে

2.1 ক্লোনড ফোল্ডারে যান, তারপরে .git ফোল্ডারে যান

২.২ কনফিগার ফাইল সম্পাদনা করুন

2.3 পুরানো থেকে নতুন পর্যন্ত url আপডেট করুন:

(Old) url = git@github.com:yourgitusername/pizzahut_repo.git    

(New) url = git@pizza:yourgitusername/pizzahut_repo.git


1

আমার জন্য একমাত্র কার্যকরী সমাধানটি কেবল সহজভাবে যুক্ত করা ছিল ~/.ssh/config

Host *
  IdentityFile ~/.ssh/your_ssh_key
  IdentityFile ~/.ssh/your_ssh_key2
  IdentityFile ~/.ssh/your_ssh_key3
  AddKeysToAgent yes

your_ssh_key কোন প্রসার ছাড়াই হয়, ব্যবহার করবেন না .pub


0

ওপেনটিএসএইচ_৫.৩ পিপি চলমান সেন্টোস .5.৫-এ, ওপেনএসএসএল 1.0.1e-fips, আমি আমার কী ফাইলগুলির নাম পরিবর্তন করে সমস্যার সমাধান করেছি যাতে তাদের কারওরই ডিফল্ট নাম না থাকে। আমার .ssh ডিরেক্টরিতে id_rsa_foo এবং id_rsa_bar রয়েছে তবে id_rsa ইত্যাদি নেই etc.


এবং কীগুলি কীভাবে ব্যবহৃত হয়? কোন স্বয়ং-সনাক্তকরণ আছে?
রোবস্চ


0

আটলশিয়ান ব্লগ পৃষ্ঠায় উল্লিখিত হিসাবে নিম্নলিখিত টেক্সট সহ .ssh এর মধ্যে একটি কনফিগার তৈরি করা হয়েছে :

#user1 account
 Host bitbucket.org-user1
     HostName bitbucket.org
     User git
     IdentityFile ~/.ssh/user1
     IdentitiesOnly yes

 #user2 account
 Host bitbucket.org-user2
     HostName bitbucket.org
     User git
     IdentityFile ~/.ssh/user2
     IdentitiesOnly yes

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


0

আপনি একাধিক ssh কী বজায় রাখার জন্য এই sshmલ્ટ npm প্যাকেজ চেষ্টা করতে পারেন ।


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

0

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

Ssh কী তৈরি করুন

ssh-keygen -t rsa -f ~/.ssh/company -C "name.surname@company.com"

Ssh কনফিগারেশন সম্পাদনা করুন

nano ~/.ssh/config

    Host company.gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey  
    IdentityFile ~/.ssh/company

ক্যাশেড ssh কী (গুলি) মুছুন

ssh-add -D

এটা পরীক্ষা করো !

ssh -T git@company.gitlab.com

গিটল্যাবকে স্বাগতম, @ hugo.sohm!

ssh -T git@gitlab.com

গিটল্যাব, @ হুগোসোহমে স্বাগতম!

এটা ব্যবহার করো !

কোম্পানির অ্যাকাউন্ট

$ git clone git@company.gitlab.com:group/project.git

ব্যক্তিগত / ডিফল্ট অ্যাকাউন্ট

$ git clone git@gitlab.com:username/project.git

আমি যে উত্সটি ব্যবহার করেছি এটি এখানে , আশা করি এটি সাহায্য করবে!


0

আমি নিম্নলিখিতটি ~ / .ssh / config এ সেট করতে পছন্দ করি:

# Config for Github to support multiple Github keys
Host  github.com
  HostName github.com
  User git
# UseKeychain adds each keys passphrase to the keychain so you don't have to enter the passphrase each time.
  UseKeychain yes
# AddKeysToAgent would add the key to the agent whenever it is used, which might lead to debugging confusion since then sometimes the one repo works and sometimes the other depending on which key is used first.
#  AddKeysToAgent yes
# I only use my private id file so all private repos don't need the env var `GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa"` to be set.
  IdentityFile ~/.ssh/id_rsa

তারপরে আপনার রেপোতে আপনি একটি .envফাইল তৈরি করতে পারেন যা ব্যবহার করার জন্য ssh কমান্ড ধারণ করে:

GIT_SSH_COMMAND="ssh -i ~/.ssh/your_ssh_key"

আপনি যদি উদাহরণস্বরূপ ডটেনভ ব্যবহার করেন তবে পরিবেশের বর্ণটি স্বয়ংক্রিয়ভাবে রফতানি হয় এবং হুফ হুপ আপনি যে প্রকল্প / ডিরেক্টরিতে চান তা নির্দিষ্ট করতে পারেন। কীচেইনে যুক্ত হওয়ার পরে পাসফ্রেজটি একবার জিজ্ঞাসা করা হয়েছিল।

এই সমাধানটি গিটের সাথে পুরোপুরি কাজ করে এবং একটি ম্যাক (কারণ কারণে UseKeychain) এ কাজ করার জন্য ডিজাইন করা হয়েছে ।

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