এসএসএইচ কনফিগারেশন - একই হোস্ট তবে বিভিন্ন কী এবং ব্যবহারকারীর নাম


31

আমি দুটি গিটহাব অ্যাকাউন্ট স্থাপন করেছি, তবে সঠিকভাবে কাজ করার জন্য আমি এসএসএস কী পেতে পারি না। আমি বিভিন্ন কনফিগার চেষ্টা করেছি।


Host github_username1
    HostName github.com
    IdentityFile ~/.ssh/rsa_1
    User username1
Host github_username2
    HostName github.com
    IdentityFile ~/.ssh/rsa_2
    User username2

git push:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

ব্যবহারকারীর নাম 1 এর জন্য কাজ করে:

Host github.com
    HostName github.com
    IdentityFile ~/.ssh/rsa_1
    User username1
Host github.com
    HostName github.com
    IdentityFile ~/.ssh/rsa_2
    User username2

git push ব্যবহারকারীর নাম 2 এর রেপো:

ERROR: Permission to username2/repo.git denied to username1.
fatal: The remote end hung up unexpectedly

আমি git pushউভয় IdentityFileএবং Userসেটিংস একই সাথে চেষ্টা করেছি Host। আউটপুটটি সর্বশেষ কনফিগারেশনের মতো।

আমি মনে করি গিট স্বয়ংক্রিয়ভাবে হোস্ট "github.com" অনুসন্ধান করে কারণ রিমোটটি এমন। বলা হয়ে থাকে যে হোস্ট আপনার পছন্দসই কিছু হতে পারে ( /programming//a/3828682 )। Ssh কনফিগারেশন থেকে হোস্টের নির্দিষ্ট রেপো ব্যবহারের কি পরিবর্তন করার কোনও উপায় আছে?

আমি ~ / .ssh / কনফিগারেশন থেকে কেবল এটি সমাধান করতে পারলে এটি আদর্শ হবে।

উত্তর:


44

ওপেনএসএসএইচ ক্লায়েন্টটি Hostবিভাগ শনাক্তকারী হিসাবে কেবল রেখাটি ব্যবহার করে এবং অন্যান্য সমস্ত কিছু সেটিংস। আপনি যদি সংযুক্ত হন তবে foo@bar.comএসএসএইচ " User foo" অনুসন্ধান করবে না ; এটি কেবল " Host bar.com" অনুসন্ধান করবে ।

অন্য কথায়: যদি Host github_username2আপনার এসএসএইচ কনফিগারেশনে আপনার " " থাকে তবে আপনাকে অবশ্যই নিজের গিট রিমোটগুলিতে একই হোস্টটি ব্যবহার করতে হবে - github_username2না git@github.com

তবে, এটি প্রমাণীকরণ ব্যর্থতার কারণ নয় github.com, এসএসএইচ ব্যবহারকারীর নাম অবশ্যই " git" হতে হবে । গিটহাব এসএসএইচ সার্ভারগুলি কেবল তাদের এসএসএইচ কী দ্বারা ব্যবহারকারীদের সনাক্ত করে।


একটি সঠিক এসএসএইচ কনফিগারেশন হ'ল:

Host github_username1
    Hostname github.com
    User git
    IdentityFile ~/.ssh/rsa_1
Host github_username2
    Hostname github.com
    User git
    IdentityFile ~/.ssh/rsa_2

গিট কনফিগারেশন:

[remote "origin"]
    url = git@github_username1:username2/repo.git

দ্রষ্টব্য: যদিও আমি gitআমার উদাহরণে উভয় স্থানে ব্যবহারকারীর নাম উল্লেখ করেছি, তবে এটি কেবল একবার নির্দিষ্ট করতে হবে - git@গিট URL User gitএ এসএসএইচ কনফিগারেশনে অগ্রাধিকার নেবে ।


2
কিছু ক্ষেত্রে আপনার অবশ্যই IdentitiesOnly=yesপ্রতিটি hostবিভাগে যুক্ত করার প্রয়োজন হতে পারে তা নিশ্চিত করতে যে ssh কেবলমাত্র নির্বাচিত পরিচয় ফাইলটি বেছে নেবে এবং অন্য কোনও
ডিফল্টর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.