Ssh-key ব্যবহার করে কোনও পাসওয়ার্ড ছাড়াই গিটহাবে পুশ করুন


215

আমি একটি পাসওয়ার্ড ছাড়াই একটি এসএসএইচ কী জুড়ি উত্পন্ন করেছি এবং গিটহাবে সর্বজনীন কী যুক্ত করেছি।

সাথে

user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.

সফল ছিল এবং যখন আমি কীটির নাম পরিবর্তন করি, এটি ব্যর্থ হয়।

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

পাসওয়ার্ড ছাড়া ধাক্কা দেওয়ার কোনও উপায় আছে?


9
নিশ্চিত করুন যে আপনি https://github...নিজের রিমোটগুলিতে ব্যবহার করছেন না । তাদেরও git@github...ফর্ম্যাটটি অনুসরণ করা উচিত ।
সিজেসি 343

উত্তর:


419

যদি এটি আপনাকে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য জিজ্ঞাসা করে , আপনার উত্সের দূরবর্তীটি এসএসএইচ URL এর চেয়ে HTTPS URL- এ নির্দেশ করছে।

এটি ssh এ পরিবর্তন করুন।

উদাহরণস্বরূপ, গিটের মতো একটি গিটহাব প্রকল্পে এইচটিটিপিএস URL থাকবে:

https://github.com/<Username>/<Project>.git

এবং এসএসএইচ এক:

git@github.com:<Username>/<Project>.git

আপনি করতে পারেন:

git remote set-url origin git@github.com:<Username>/<Project>.git

ইউআরএল পরিবর্তন করতে।


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

2
এখানে একটি দ্রুত ও লাইনার শেল কমান্ডটি দেওয়া হয়েছে যা আপনার https ইউআরএলটিকে যথাযথ গিট একটিতে স্বয়ংক্রিয়ভাবে বদলে দেবে (কেবল git remote set-url origin $(git remote show origin | grep "Fetch URL" | sed 's/ *Fetch URL: //' | sed 's/https:\/\/github.com\//git@github.com:/')
গিথুব

11

সংক্ষিপ্তসারগুলির জন্য অতিরিক্ত মনে হয়, আপনাকে অবশ্যই ব্যবহারকারীর নামটি রেখে দিতে হবে

git remote set-url origin git@gist.github.com:<Project code>

10

আপনি যদি সত্যিই এসএসএইচ ইউআরএল ব্যবহার করছেন তবে গিটটি পুশ করার সময় আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড জিজ্ঞাসা করা হচ্ছে:

git remote set-url origin git@github.com:<Username>/<Project>.git

আপনার সাথে সমস্যার সমাধানের চেষ্টা করা উচিত:

ssh -vT git@github.com

নীচে নমুনা আউটপুট একটি টুকরা দেওয়া:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

আমি ইতিমধ্যে গিটহাবের আগে ইতিমধ্যে পাবলিক কী যুক্ত করেছি এবং স্থানীয়ভাবে আমার ব্যক্তিগত কীও রয়েছে। তবে আমার প্রাইভেট কীটি আলাদা নামে পরিচিত /c/Users/Yuci/.ssh/github_rsa

নমুনা আউটপুট অনুযায়ী গিট চেষ্টা করছে /c/Users/Yuci/.ssh/id_rsa, যা আমার নেই। অতএব, আমি কেবল একই ডিরেক্টরিতে অনুলিপি github_rsaকরতে পারি id_rsa

cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa

এখন যখন আমি ssh -vT git@github.comআবার দৌড়ান , আমার কাছে রয়েছে:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...

এবং এখন আমি ব্যবহারকারীর নাম এবং পাসওয়ার্ড জিজ্ঞাসা না করে গিটহাবের দিকে ধাক্কা দিতে পারি :-)


5

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

এখানে একটি লিঙ্ক দেওয়া হয়েছে, যার মতে কেন আমাদের এসএসএইচ প্রয়োজন এবং এটি কীভাবে ব্যবহার করতে হয়: ধাপে ধাপে

গিট জেনারেট এসএসএইচ কী


0

যথারীতি, একটি এসএসএইচ কী তৈরি করুন এবং গিটহাবে সর্বজনীন কীটি আটকে দিন। Ssh- এজেন্টে প্রাইভেট কী যুক্ত করুন। (আমি ধরে নিলাম এটিই আপনি করেছেন))

সবকিছু সঠিক কিনা তা পরীক্ষা করতে, ব্যবহার করুন ssh -T git@github.com

এরপরে, নীচের হিসাবে দূরবর্তী পয়েন্টটি সংশোধন করতে ভুলবেন না:

git remote set-url origin git@github.com:username/your-repository.git

-4

কমান্ড লাইন ব্যবহার করে:

ls -al ~/.sshবিদ্যমান এসএসএইচ কী উপস্থিত রয়েছে কিনা তা দেখতে প্রবেশ করান ।

টার্মিনালে শো হয়: ডিরেক্টরি নেই

তারপরে একটি নতুন এসএসএইচ কী তৈরি করুন

ধাপ 1.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ধাপ ২.

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>

ধাপ 3.

Enter passphrase (empty for no passphrase): [Type a password]

Enter same passphrase again: [Type password again]

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