উইন্ডোজের অধীনে গিট আমার পাসফ্রেজটি কেন মনে করতে পারে না


144

আমি সবেমাত্র গিট ব্যবহার শুরু করেছি এবং আমার পাসফ্রেজটি মনে করতে পারছি না আমি সেমিডি.এক্সি উন্নত ব্যবহার করছি এবং আমার গিট হোস্টটি গিথুব এবং আমি গিথুবটিতে সেই গাইডের মতো একটি এসএস কী তৈরি করেছি

কিন্তু আমি এখনও পেতে

*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':

আমি msysgit নিজেকে ব্যবহার করেন নি, কিন্তু প্যাজেন্ট প্রমাণীকরণ এজেন্ট পারে সহায়ক হতে।
সেবজায়ার

1
আমি সবকিছুই চেষ্টা এবং তারপর আমি পাওয়া এই যা কাজ করেন।
ব্লেক নিমাইজস্কি

1
উইন্ডোজ 10 জাহাজটি কিছু সময়ের জন্য ওপেনএসএইচ সহ। Ssh- এজেন্ট পরিষেবা সক্ষম করুন, ssh store এ আপনার কী যুক্ত করতে ssh-add ব্যবহার করুন GIT_SSHএবং আপনার পরিবেশে সেট করুন (প্রয়োজনে) এবং git / ssh আপনার পাসফ্রেজটি ssh-এজেন্টের মাধ্যমে মনে রাখবে। আরও বিস্তারিত নির্দেশাবলীর জন্য নীচে আমার উত্তর দেখুন।
d3r3kk

1
2019, সবেমাত্র উইন্ডোজ 10 এ গিট ইনস্টল করা হয়েছে এবং গিট একবারে পাসওয়ার্ড চেয়েছে এবং এটি মনে রাখে।
জিন-ফ্রান্সোইস ফ্যাব্রে

@ জিন-ফ্রেঞ্চোইস ফ্যাব্রে আপনি ওপেনএসএসএল ব্যবহার করছেন না।
রোডআরনার

উত্তর:


206

আমি বুঝতে পারি যে এই প্রশ্নটি দুই বছরের পুরনো হয়ে আসছে, তবে আমার একই সমস্যা ছিল এবং এখানে বেশ কয়েকটি উত্তর আমার কাছে প্রশ্নের পুরোপুরি উত্তর দেয়নি। আপনি এমএসজিগিট ছাড়াও টরটোজজিট ব্যবহার করেন কিনা তা নির্ভর করে এখানে দুটি ধাপে ধাপে সমাধান রয়েছে।

প্রথম সমাধানটি উইন্ডোজ, এমএসজিজিট এবং পুটিটিওয়াকে ধরে নেয়।

  1. নির্দেশ অনুসারে এমএসজিগিত এবং পুটিটি ইনস্টল করুন।
  2. (Alচ্ছিক) আপনার পথে পুটি যুক্ত করুন। (আপনি যদি এটি না করে থাকেন তবে নীচের পিটিটিওয়াই কমান্ডের কোনও রেফারেন্স অবশ্যই যথাযথ এক্সিকিউটেবলের পুরো পথ দিয়ে উপসর্গ করা উচিত))
  3. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে গিটহাবের নির্দেশ অনুসারে বা আপনার গিট হোস্টের নির্দেশ অনুসারে একটি কী হ্যাশ তৈরি করুন।
  4. আবার, আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে পুটটিজ.এক্সই ব্যবহার করে পুটটি'র পেজেন্ট.এক্সে ব্যবহারের জন্য আপনার কীটি রূপান্তর করুন । নির্দেশাবলী পুটিটিওয়াইয়ের ডকুমেন্টেশনে, এই সহায়ক সহায়িকাতে এবং সাইবারস্পেসের বিভিন্ন স্থানে রয়েছে।
  5. রান পুটিং এর pageant.exe , আপনার .ppk ফাইল খোলার ( "কী যোগ করুন"), এবং আপনার কী জন্য আপনার পাসফ্রেজ প্রদান।
  6. উইন্ডোজের পরিবেশ পরিবর্তনশীল কথোপকথনটি অ্যাক্সেস করুন ("কম্পিউটার" এ ডান ক্লিক করুন, "বৈশিষ্ট্যগুলিতে" ক্লিক করুন, "অ্যাডভান্সড সিস্টেম সেটিংস" বা "অ্যাডভান্সড" ট্যাবে ক্লিক করুন, "পরিবেশ পরিবর্তনশীল" এ ক্লিক করুন)। নিম্নলিখিত পরিবেশের পরিবর্তনশীল যুক্ত করুন:

    GIT_SSH = সি: \ পূর্ণ \ পথ \ করার \ plink.exe

    "সি: \ পূর্ণ \ পথ \" প্রতিস্থাপন করুন পুটিটিওয়াইয়ের সম্পূর্ণ ইনস্টলেশন পাথের সাথে, যেখানে plink.exe পাওয়া যায়। এটি "ব্যবহারকারীর ভেরিয়েবল" বিভাগে যুক্ত করা ভাল। এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি plink.exe ব্যবহার করার জন্য যে পথটি পেজেন্ট (পেজেন্ট.এক্সে) এর জন্য ব্যবহার করেন তার সাথে মেলে। কিছু ক্ষেত্রে আপনার পটিটিওয়াইয়ের বেশ কয়েকটি ইনস্টলেশন থাকতে পারে কারণ এটি অন্যান্য অ্যাপ্লিকেশনগুলির সাথেও ইনস্টল করা থাকতে পারে। একটি ইনস্টলেশন থেকে plink.exe এবং অন্যটি থেকে পেজেন্ট.এক্সএই ব্যবহার করা আপনার সমস্যার কারণ হতে পারে।

  7. একটি কমান্ড প্রম্পট খুলুন।

  8. আপনি যদি গিথুব.কম এ হোস্ট গিট রিপোজিটরির সাথে সংযোগ স্থাপনের চেষ্টা করছেন তবে নিম্নলিখিত কমান্ডটি চালান:

    plink.exe git@github.com

    আপনি যে গিট সংগ্রহস্থলটির সাথে সংযোগের চেষ্টা করছেন তা যদি অন্য কোথাও হোস্ট করা হয়, তবে একটি উপযুক্ত ব্যবহারকারীর নাম এবং URL সহ git@github.com প্রতিস্থাপন করুন । (ধরে নিচ্ছেন গিথুব) আপনাকে জানানো উচিত যে সার্ভারের হোস্ট কীটি ক্যাশেড নেই, এবং আপনাকে এটি বিশ্বাস করে কিনা জিজ্ঞাসা করা উচিত। Y দিয়ে উত্তর দিন । এটি পটিটিওয়াইয়ের পরিচিত হোস্টগুলির তালিকায় সার্ভারের হোস্ট কী যুক্ত করবে। এই পদক্ষেপ ব্যতীত গিট কমান্ডগুলি সঠিকভাবে কাজ করবে না। এন্টার চাপ দেওয়ার পরে, গিথুব আপনাকে জানিয়ে দেয় যে গিথুব শেল অ্যাক্সেস সরবরাহ করে না। ঠিক আছে ... আমাদের দরকার নেই। (আপনি যদি অন্য কোনও হোস্টের সাথে সংযোগ স্থাপন করছেন এবং এটি আপনাকে শেল অ্যাক্সেস দেয় তবে অন্য কিছু না করেই সম্ভবত লিঙ্কটি সমাপ্ত করা ভাল))

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

দ্বিতীয় সমাধানটি উইন্ডোজ, এমএসজিজিট এবং টরটোইজগিট ধরে।

TortoiseGit PuTTY এক্সিকিউটেবল এবং প্লিংকের একটি বিশেষভাবে পরিবর্তিত সংস্করণ (যার নাম TortoisePlink.exe) রয়েছে যা জিনিসগুলি আরও সহজ করে দেবে comes

  1. নির্দেশ অনুসারে এমএসজিগিট এবং কচ্ছপ ইনস্টল করুন।
  2. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে গিটহাবের নির্দেশ অনুসারে বা আপনার গিট হোস্টের নির্দেশ অনুসারে একটি কী হ্যাশ তৈরি করুন।
  3. আবার, আপনি যদি ইতিমধ্যে এটি না করে থাকেন, টর্টোজাইজিটের পেজেন্ট.এক্সে টরটোজজিটের পুটজেন.এক্সই ব্যবহার করে আপনার কীটি রূপান্তর করুন । প্রথম সমাধানে লিঙ্কযুক্ত সহায়ক গাইড এবং সাইবারস্পেসের বিভিন্ন স্থানে নির্দেশিকাটি পুটিটিওয়ির নথিতে রয়েছে।
  4. রান TortoiseGit এর pageant.exe , আপনার .ppk ফাইল খোলার ( "কী যোগ করুন"), এবং আপনার কী জন্য আপনার পাসফ্রেজ প্রদান।
  5. উইন্ডোজের পরিবেশ পরিবর্তনশীল কথোপকথনটি অ্যাক্সেস করুন ("কম্পিউটার" এ ডান ক্লিক করুন, "বৈশিষ্ট্যগুলিতে" ক্লিক করুন, "অ্যাডভান্সড সিস্টেম সেটিংস" বা "অ্যাডভান্সড" ট্যাবে ক্লিক করুন, "পরিবেশ পরিবর্তনশীল" এ ক্লিক করুন)। নিম্নলিখিত পরিবেশের পরিবর্তনশীল যুক্ত করুন:

    GIT_SSH = সি: \ পূর্ণ \ পথ \ \ TortoisePlink.exe করতে

    TortoisePlink.exe পাওয়া যায়, যেখানে টরটোজজিট-এ সম্পূর্ণ ইনস্টলেশন পথের সাথে "সি: \ পূর্ণ \ পথ \" প্রতিস্থাপন করুন। এটি "ব্যবহারকারীর ভেরিয়েবল" বিভাগে যুক্ত করা ভাল। এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি টর্টোইজপ্লিংক.এক্সে যে পথটি ব্যবহার করেন তা আপনি পেজেন্ট (পেজেন্ট.এক্সি) এর জন্য যে পথটি ব্যবহার করেন তার সাথে মেলে। কিছু ক্ষেত্রে আপনার পটিটিওয়াইয়ের বেশ কয়েকটি ইনস্টলেশন থাকতে পারে কারণ এটি অন্যান্য অ্যাপ্লিকেশনগুলির সাথেও ইনস্টল করা থাকতে পারে। টার্টোজাইজিট ইনস্টলেশন থেকে টরটোইজপ্লিন.এক্সি এবং পেজেন্ট.এক্সি ব্যবহার করে অন্য অ্যাপ্লিকেশনটির অন্য ইনস্টলেশন (বা স্ট্যান্ডেলোন পুটিটিই ইনস্টলেশন থেকে) সম্ভবত আপনার সমস্যার কারণ হতে পারে।

  6. সব শেষ! গিট কমান্ডগুলি এখন কমান্ড লাইন থেকে কাজ করা উচিত। আপনি যখন প্রথমবার আপনার গিট সংগ্রহস্থলের সাথে সংযোগ স্থাপনের চেষ্টা করবেন তখন আপনাকে সম্ভবত জানানো হবে যে সার্ভারের হোস্ট কীটি ক্যাশেড নয়, এবং আপনি যদি সার্ভারকে বিশ্বাস করেন তবে জিজ্ঞাসা করবেন। "হ্যাঁ" এ ক্লিক করুন। (এটি কার্যবিধিতে কচ্ছপযুক্ত প্লিংক.এক্স।)

    আপনি পেজেন্ট.একএস.ই.পি. ফাইলটি বুট করার সময় স্বয়ংক্রিয়ভাবে লোড করতে চাইতে পারেন , কতবার আপনার প্রয়োজন হবে তার উপর নির্ভর করে।

তৃতীয় সমাধান উইন্ডো, এমএসজিজিট এবং নেটিভ কমান্ড প্রম্পট ধরে।

  1. Msysgit ইনস্টল করুন
  2. এমএস-ডস কমান্ড প্রম্পটে গিটটি ব্যবহার করার অনুমতি দেওয়ার বিষয়ে নিশ্চিত হন
  3. চালান start-ssh-agent
  4. এসএসএইচ পাসফ্রেজগুলি প্রবেশ করান
  5. সব শেষ! গিট কমান্ডগুলির এখন নেটিভ কমান্ড প্রম্পটে কাজ করা উচিত।

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

15
অন্য কেউ যদি এই নির্বোধ ত্রুটির দিকে চালিত হয় তবে নিশ্চিত হয়ে নিন যে আপনি এসএসএইচ দূরবর্তী ইউআরএল ফর্ম্যাটটি ব্যবহার করছেন (গিট @ হোস্ট: একাউন্টনেম / পুনঃনাম.ইউটি) এইচটিটিপিএস ইউআরএল নয়, অন্যথায় এটি সেই পাসওয়ার্ড জিজ্ঞাসা করতে থাকবে ...
12

আমি যখন plink.exe git@github.com চালনা করি তখন আমি "চূড়ান্ত ত্রুটি: সার্ভার অপ্রত্যাশিতভাবে নেটওয়ার্ক সংযোগ বন্ধ করে" পাই
ব্রেট

4
দ্রষ্টব্য: তিনটি পদ্ধতিটি এমএসজিগিত হিসাবে উত্সাহিত হয়েছে যাতে আপনি start-ssh-agentআপনার এসএসএইচ পাসফ্রেজটি সংরক্ষণ করার জন্য কমান্ড লাইনে টাইপ করতে পারেন ।
ম্যাট ক্লার্কসন

6
তৃতীয় সমাধান কেবল কমান্ড প্রম্পট বন্ধ না হওয়া পর্যন্ত এবং কেবলমাত্র সেই কমান্ড প্রম্পটের জন্যই কাজ করে - অন্য সমস্ত সিএমডি এখনও পাসফ্রেজের জন্য জিজ্ঞাসা করে না। এছাড়াও অন্যান্য সমস্ত ক্লায়েন্ট (ভিএস, ভিএস কোড) দূরবর্তী গিটের সাথে যোগাযোগ করতে ব্যর্থ।
দিমা

21

প্রতিবার যখন আমি একটি নতুন ডেস্কটপ সেট আপ করি আমি এই নির্দেশাবলীটি ভুলে যাই, তাই আমি এখানে আরও একটি উত্তর যুক্ত করছি যেহেতু আমি এটির প্রায়শই প্রায় একই সময়ে হোঁচট খাই!


আমার মতো অধৈর্য ব্যবহারকারীদের জন্য দ্রুত পদক্ষেপ

  1. OpenSSH Authentication Agentপরিষেবাটি সক্ষম করুন এবং এটি স্বয়ংক্রিয়ভাবে শুরু করুন।
  2. ssh-addকমান্ড লাইনে এজেন্টের সাথে আপনার এসএসএইচ কী যুক্ত করুন।
  3. পরীক্ষার গিট একীকরণ, যদি এটি এখনও আপনার পাসফ্রেজের জন্য জিজ্ঞাসা করে, চালিয়ে যান।
  4. $ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exeআপনার সেশনে পরিবেশ পরিবর্তনশীল , বা স্থায়ীভাবে আপনার ব্যবহারকারীর পরিবেশে যুক্ত করুন।

বিস্তারিত পদক্ষেপ: ওভারভিউ

উইন্ডোজ কিছু সময়ের জন্য ওপেনএসএইচ দিয়ে শিপিং করছে। এতে গিটের পাশাপাশি এসএসএসের জন্য প্রয়োজনীয় সমস্ত বিট অন্তর্ভুক্ত রয়েছে তবে এটি 100% নির্বিঘ্নে কাজ করার আগে কিছু টিএলসি লাগবে বলে মনে হয়। উইন্ডোজ ভার 10.0.18362.449 অনুসারে আমি যে পদক্ষেপগুলি সফলতার সাথে অনুসরণ করছি তা এখানে রয়েছে (আপনি একটি উইন্ডোজ 10 সংস্করণটি একটি সেমিডি.এক্স.ই. শেল ও টাইপ করে দেখতে পারেন ver)।

আমি এখানে ধরে নিলাম আপনার ইতিমধ্যে আপনার এসএসএইচ কী সেটআপ রয়েছে এবং এটি অবস্থিত ~/.ssh/id_rsa

আপনার উইন্ডোজ 10 বাক্সে ssh- এজেন্ট পরিষেবা সক্ষম করুন।

  1. স্টার্ট-> 'পরিষেবাদিগুলি' টাইপ করুন এবং প্রদর্শিত অ্যাপ্লিকেশনটিতে ক্লিক করুন।
  2. এই OpenSSH Authentication Agentতালিকায় সেবা।
  3. OpenSSH Authentication Agentপরিষেবাটিতে ডান ক্লিক করুন এবং 'সম্পত্তি' নির্বাচন করুন।
  4. পরিবর্তন Startup type:করার জন্য Automatic
  5. Startপরিষেবার স্থিতিতে পরিবর্তন করতে বোতামটি ক্লিক করুন Running
  6. ক্লিক OKকরে পরিষেবাগুলি অ্যাপ্লিকেশনটি বন্ধ করে ডায়ালগটি খারিজ করুন।

আপনার কী যুক্ত করুন ssh-agent

  1. আপনার পছন্দসই শেলটি খুলুন (আমি এই উদাহরণে উইন্ডোজ পাওয়ারশেল ব্যবহার করব, পাওয়ারশেল কোরকেও প্রযোজ্য)
  2. আপনার এসএসএইচ কীটি এতে যুক্ত করুন ssh-agent: ssh-add (এটি যদি আপনি ডিফল্ট থেকে পৃথক হয় তবে আপনার যুক্তিতে প্রথম যুক্তি হিসাবে পাথ যোগ করতে পারেন)
  3. আপনার পাসফ্রেজটি প্রবেশ করান যদি / কখন তা করার অনুরোধ জানানো হয়।

গিট + এসএসএইচ চেষ্টা করুন

  1. আপনার শেলটি খুলুন (আবার, আমি পাওয়ারশেল ব্যবহার করছি) এবং একটি রেপো ক্লোন করুন।git clone git@github.com:octocat/Spoon-Knife
  2. আপনি যদি এই প্রম্পটটি দেখতে পান তবে পরবর্তী বিভাগে চালিয়ে যান:
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':

আপনার GIT_SSHপরিবেশ পরিবর্তনশীল সেট করুন

যে কোনও সেশনে আপনি সহজেই এই পরিবেশটি পরিবর্তনশীল সেট করতে পারেন এবং আপনার পাসফ্রেজের জন্য প্রম্পটটি আসা বন্ধ হয়ে যাবে এবং ssh ssh-agentআপনার পক্ষে এটি ব্যবহার করবে । বিকল্পভাবে, আপনি আপনার পাসওয়ার্ড স্থায়ীভাবে আপনার ব্যবহারকারীর পরিবেশে সেট করতে পারেন।

GIT_SSHকেবলমাত্র বর্তমান শেলটিতে সেট করতে :

  1. আপনার পছন্দের শেলটি খুলুন। (আমার জন্য পাওয়ারশেল)
  2. উপযুক্ত পরিবেশে পরিবেশ পরিবর্তনশীল GIT_SSH সেট করুন ssh.exe:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
  3. উপরের গিট + এসএসএইচে পদক্ষেপগুলি আবার চেষ্টা করুন

GIT_SSHস্থায়ীভাবে সেট করা

  1. ফাইল এক্সপ্লোরার খুলুন। শুরু-> 'ফাইল এক্সপ্লোরার' টাইপ করুন এবং তালিকায় এটিতে ক্লিক করুন।
  2. 'এই পিসি' রাইট ক্লিক করুন এবং 'সম্পত্তি' ক্লিক করুন।
  3. 'উন্নত সিস্টেম সেটিংস' এ ক্লিক করুন।
  4. 'পরিবেশ পরিবর্তনশীল ...' বোতামটি ক্লিক করুন।
  5. 'আপনার_ ব্যবহারকারী_নামের জন্য ব্যবহারকারীর ভেরিয়েবল' এর অধীনে ক্লিক করুন নতুন ...
  6. Variable name:GIT_SSH এ ক্ষেত্র সেট করুন
  7. Variable value:ক্ষেত্রটিকে পাথ-টু-এস.এস.ইক্সে সেট করুন (সাধারণত C:\Windows\System32\OpenSSH\ssh.exe)।
  8. নতুন ব্যবহারকারী পরিবর্তনশীল ডায়ালগটি খারিজ করতে ওকে ক্লিক করুন।
  9. পরিবেশ পরিবর্তনশীল ডায়ালগটি খারিজ করতে ওকে ক্লিক করুন।
  10. উপরের গিট + এসএসএইচে পদক্ষেপগুলি আবার চেষ্টা করুন

নোট করুন যে উইন্ডোজ 10 অগ্রগতি হওয়ার সাথে সাথে আমি আরও শিখতে গিয়ে নতুন পদক্ষেপ / পদ্ধতিগুলির সাথে এটি সম্ভবত পরিবর্তন হতে চলেছে। আমি এটি আপডেট করার চেষ্টা করব, আমি মন্তব্যে প্রতিক্রিয়ার প্রত্যাশায় রয়েছি।


3
এটি কমপক্ষে উইন্ডোজের পক্ষে 1/31/2020-এর সবচেয়ে সম্পূর্ণ উত্তর। পুটি বা কিছু ইনস্টল করার দরকার নেই।
জেক

একমত। মনে হচ্ছে অন্তর্নির্মিত সমর্থন অবশেষে এখানে।
ইরান লয়েড

লেজেন্ড! এটি আমার সমস্যার সমাধান করেছে। কিছুক্ষণের জন্য সমাধানের সন্ধান করছিলেন, বিভিন্ন জিনিস চেষ্টা করে এবং এটি এই সমস্যার সবচেয়ে নিখুঁত অ্যান্সারকে হস্তান্তর করে
কলিন

একটি দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ এবং এমন একটি যা আমাকে সম্ভবত কয়েক ঘন্টা গণ্ডগোলের কয়েক ঘন্টা বাঁচিয়েছিল। +1
84

20

যে কোনও ব্যক্তির আরও বিস্তারিত নির্দেশাবলীর প্রয়োজনের জন্য, এই পৃষ্ঠাটি দেখুন: http://help.github.com/working-with-key-passphrases/


msysgitশেলটি ব্যবহারের জন্য আমার ঠিক কী দরকার ।
আর্থুরাকায়ে

1
গিট ব্যাশ ডেস্কটপ অ্যাপ ব্যবহার করার সময় আমার জন্য কাজ করেছিলেন for আমি notepad ~/.profileসেই লিঙ্কটি থেকে সামগ্রীটি আটকানো এবং অনুলিপি করেছি, গিট ব্যাশটি পুনরায় শুরু করেছি, আমার পাসওয়ার্ড প্রবেশ
করিয়ে

আমি "উইন্ডোজ উইন্ডোতে গিট ২.x ব্যবহার করে" গিটের জন্য উইন্ডোতে অটো-প্রবর্তনকারী এসএসএল-এজেন্ট অনুসরণ করেছি তবে এটি সর্বদা আমাকে পাসওয়ার্ড চেয়েছিল। গৃহীত উত্তর থেকে প্রথম সমাধান (পুটি) অনুসরণ করা আমার জন্য এটি স্থির করে।
jakub.g

20

আপনি যদি উইন্ডোজ এর অধীনে গিট ব্যাশ ব্যবহার করছেন তবে আপনি নিম্নলিখিতটি সম্পাদন করতে পারেন:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

এটি দ্বিতীয় কমান্ডের পাস বাক্যাংশের জন্য জিজ্ঞাসা করবে, এবং এটিই। প্রতিটি অতিরিক্ত ক্রিয়া যা আপনাকে করতে হবে (যা একবার পাস বাক্যাংশের প্রয়োজন পরে) আপনাকে পাস বাক্যাংশ জিজ্ঞাসা করবে না (নীচের স্ক্রিন শটটিতে একটি উদাহরণ দেখুন):

উইন্ডোজে গিট ব্যাশে পাস বাক্যাংশ যোগ করা


2
এটি উইন্ডোজ 10-এ উবুন্টু সাবসিস্টেমেও কাজ করে
37

1
নোট করুন যে আপনার কীপ্যায়ারটি অন্য কোথাও অবস্থিত থাকলে আপনি। / .ssh / * _ আরএসএ * * পিএম ফাইলের পথের সাথে প্রতিস্থাপন করতে পারেন
অ্যালেক্স_ডানিয়েলসেন

13

একটি অতিরিক্ত সমাধান 5 বছর, 8 মাস এবং 6 দিন পরে প্রশ্ন পোস্ট হওয়ার পরে খারাপ ধারণা হবে না তাই এখানে চলে।

দ্রষ্টব্য: ধরে নিন আপনি উইন্ডোজ কম্পিউটার ব্যবহার করছেন।

  1. গিট-শংসাপত্র-উইনস্টোরটি ডাউনলোড করুন ।
  2. চালাও এটা! আপনার PATHপরিবেশে পরিবর্তনশীল জিআইটি থাকলে , এটি কেবল কাজ করা উচিত। আপনি যদি না, চালান git-credential-winstore -i C:\Path\To\Git.exe

পরের বার আপনি কোনও ভাণ্ডার প্রতিশ্রুতিবদ্ধ করার চেষ্টা করবেন, আপনাকে আপনার শংসাপত্রগুলি প্রবেশ করার অনুরোধ জানানো হবে। এটা হওয়া উচিত। আপনি নিজের পাসওয়ার্ড পরিবর্তন না করা পর্যন্ত আপনাকে আর আপনার শংসাপত্রগুলির জন্য জিজ্ঞাসা করা হবে না।


কেবল আপনার জ্ঞানের জন্য ... আপনার শংসাপত্রগুলি উইন্ডোজ শংসাপত্রের স্টোরে সংরক্ষণ করা হয়েছে

আপনি আমার শংসাপত্রগুলি কোথায় সংরক্ষণ করছেন?

আপনার শংসাপত্রগুলি ধরে রাখতে এই অ্যাপ্লিকেশনটি কেবলমাত্র বিদ্যমান উইন্ডোজ শংসাপত্রের স্টোর ব্যবহার করে। আপনি সঞ্চিত শংসাপত্রগুলি নিয়ন্ত্রণ প্যানেল> ব্যবহারকারী অ্যাকাউন্টসমূহ> শংসাপত্র ব্যবস্থাপক এবং "উইন্ডোজ শংসাপত্রগুলি" চয়ন করে দেখতে পারেন। "গিট:" শুরু করা এন্ট্রিগুলি গিট-শংসাপত্র-উইনস্টোরের।


8
এই সমাধানটি এসএসএইচ রেপোস, কেবল এইচটিটিপিএস-এর সাথে কাজ করে না বলে মনে হয়। / রাগফেস
জেসন কোডার

8

আপনি যদি আপনার কী ফাইলের জন্য একটি পাসওয়ার্ড সেট করেন তবে সংযোগ করার সময় আপনাকে সর্বদা সেই পাসওয়ার্ডটি টাইপ করতে হবে। আপনি যদি একটি পাসওয়ার্ডবিহীন কী তৈরি করেন, তবে আপনাকে প্রতিবার এটি টাইপ করতে হবে না তবে, আপনার কী ফাইলটিতে অ্যাক্সেস সহ যে কেউ এখন আপনার গিথব অ্যাকাউন্টে সংযোগ করতে পারবেন।

ssh- এজেন্ট কাজ করতে পারে। এটি চালানোর চেষ্টা করুন এবং দেখুন এটি আপনার পাসফ্রেজ মনে রাখে কিনা।


দৌড়তে ssh-keygen -p
ওপিকে

তবুও পাসওয়ার্ডের জন্য অনুরোধ জানানো হচ্ছে।
বর্ধিত

7

[সম্পাদনা করুন - প্রশ্নটি ভুলভাবে পড়া, এটি সম্পর্কিত সমস্যার উত্তর। উত্তরোত্তর জন্য পুনরায় সংস্করণ ছেড়ে]

আমার কেসটি হ'ল আমি এমন একটি রেপোতে চাপ দেওয়ার চেষ্টা করছিলাম যা আমাদের একটি সার্ভারে হোস্ট করা হয়েছিল। যখনই আমি কোনও ধাক্কা দেওয়ার চেষ্টা করতাম, গিট আমাকে আমার পাসওয়ার্ডের জন্য জিজ্ঞাসা করত (এনবি - পাসওয়ার্ড, আমার ব্যক্তিগত কীতে পাসফ্রেজ নয়)।

সার্ভারে অনুমোদিত কীগুলিতে আমার সর্বজনীন কী যুক্ত করে, আমি সেই সার্ভারে পাসওয়ার্ড-বিহীন পুশ পেতে সক্ষম হয়েছি। এবং, কারণ আমার ব্যক্তিগত কীতে কোনও পাসফ্রেজ ছিল না (যা খারাপ অনুশীলন বিটিডাব্লু!) আমাকে কিছুতেই টাইপ করার দরকার পড়েনি।

আপনার সর্বজনীন কীটিকে কোনও সার্ভারে যুক্ত করার কমান্ডটি এখানে। এটি ধরে নেয় যে ব্যবহারকারীটি gitসার্ভারে থাকা ব্যবহারকারী।

cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'

আপনি সার্ভারে লগ ইন করে এবং নিজেই ফাইলটিতে নিজের সার্বজনীন কী সংযুক্ত করে একই জিনিস অর্জন করতে পারেন ~/.ssh/authorized_keys


আপনি কি শেল অ্যাক্সেস না করে এমন কোনও ব্যক্তির দ্বারা ব্যবহারযোগ্য এমন বর্ণনায় রূপান্তর করতে পারবেন? উদাহরণস্বরূপ নোটপ্যাড বা অনুরূপ ব্যবহার করে আমাদের অনুমোদিত_কিজগুলিতে কী রাখা উচিত?
জন লিটল

4

আমি বুঝতে পারি এটি বেশ কয়েক বছর অলস।

গিটহাব একটি খুব সহায়ক ইনস্টলার সরবরাহ করে যা সবকিছুকে সুন্দর এবং সহজ করে তোলে: https://help.github.com/articles/caching-your-github-password-in-git/


দয়া করে নোট করুন এটি আপনার জিটহাব পাসওয়ার্ডটি ক্যাচ করছে , কোনও জিপিজি কী পাসফ্রেজ নয়।
জাজ2020

4

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

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

অন্যান্য সমাধানের ত্রুটিগুলি:

  • গিটহাবের নিবন্ধের ssh-agentমতো অটো- লঞ্চিং আপনি গিট ব্যাশ চালু করার সময় থেকেই শুরু থেকেই একটি পাসফ্রেজ চেয়েছে, এই অধিবেশনটিতে আপনার এসএসএইচ কী ব্যবহার করা দরকার কিনা তা নির্বিশেষে। আপনি যদি আজ আপনার স্থানীয় রেপো নিয়ে কাজ করছেন তবে সম্ভবত আপনি যখন প্রয়োজন তখনই একটি পাসফ্রেজ সরবরাহ করতে চাইবেন (যেমন কোনও দূরবর্তী রেপোর সাথে ইন্টারঅ্যাক্ট করার সময়)।
  • আপনি আপনার লঞ্চ যদি ssh-agentমত GitLab এর নিবন্ধ সঙ্গে eval $(ssh-agent -s)আপনি সম্ভবত প্রতিটি সময় টাইপ করার ক্লান্ত হয়। সম্ভাবনাগুলি হ'ল শেষ পর্যন্ত, আপনি সেই দুটি লাইনটি আপনার .bashrcকনফিগারেশনে স্বয়ংক্রিয়ভাবে চালু করতে যোগ করেছেন। ডাউনসাইডগুলি অতিরিক্ত একটি অতিরিক্ত হিসাবে একই: প্রতিবার আপনি একটি নতুন গিট ব্যাশ টার্মিনাল চালু করলে আপনি একটি অতিরিক্ত এসএস-এজেন্ট প্রক্রিয়া পাবেন (গিটিহাবের ব্যাশ স্ক্রিপ্ট চেক করে যদি প্রক্রিয়াটি ইতিমধ্যে শুরু হয়ে থাকে)।
  • উপরের দুটি মত তবে বিশেষত যখন আপনার কাছে আলাদা আলাদা হোস্টের জন্য আলাদা এসএসএইচ কী থাকে, যেমন গিটহাবের জন্য একটি এবং অন্যটি গিটল্যাবের জন্য, তাই তাদের একবারে সরবরাহ করা বিরক্তিকর এবং অসুবিধাজনক।

সুতরাং এই সমাধানটি তাদের জন্য যাঁরা কীভাবে গিট বাশকে উইন্ডোজ সেশনে প্রতি একবার এবং কেবলমাত্র যখন প্রয়োজন হয় তখন একটি পাসফ্রেজ জিজ্ঞাসা করতে পারেন। এটা তোলে টি GnuPG করে দিয়ে পরিচয়-পংক্তি ব্যবস্থাপনা আচরণ বর্ণনার অনুরূপ স্বয়ংক্রিয় স্বাক্ষর ব্যবহার default-cache-ttl

এসএসএইচকে শুধুমাত্র গিট ব্যাশ ব্যবহার করে পাসফ্রেজ জিজ্ঞাসা করার জন্য কনফিগার করা হচ্ছে

  1. প্রথমে, ssh-agentগিট ব্যাশ শেলটি শুরু করার সময় আমরা স্বয়ংক্রিয়ভাবে চালু করতে চাই । আমরা এর জন্য একটি পরিবর্তিত গিটহাবের স্ক্রিপ্ট ব্যবহার করব কারণ এটি প্রক্রিয়াটি ইতিমধ্যে শুরু হয়েছে কিনা তা যাচাই করে তবে আমরা ssh-addএখনই এটি কীগুলিতে চাই না । এই স্ক্রিপ্টটি আপনার ~/.bashrcবা ( ~/.profileবা আপনার ব্যবহারকারীর হোম ডিরেক্টরি যেমন চালানো এবং তারপরে গিট বাশ এটি প্রিন্ট করার জন্য যায়) যায়: ~/.bash_profile~C:\Users\Usernamecd ~pwd

    ### Start ssh-agent
    
    env=~/.ssh/agent.env
    
    agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
    
    agent_start () {
        (umask 077; ssh-agent >| "$env")  # use -t here for timeout
        . "$env" >| /dev/null ; }
    
    agent_load_env
    
    # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
    agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
    
    if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
        agent_start
    fi
    
    unset env
  2. এখন একটি ~/.ssh/configফাইল সম্পাদনা করুন বা তৈরি করুন এবং AddKeysToAgentপ্রতিটি হোস্ট স্তরের জন্য আপনি যে ক্যাচ চালু করতে চান তার জন্য একটি বিকল্প যুক্ত করুন (সমস্ত হোস্ট ঘোষণার আগে আপনি ফাইলটির শুরুতে নির্দেশিকা রেখে বিশ্বব্যাপী এটিও চালু করতে পারেন):

    # GitHub.com
    Host github.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_github
      AddKeysToAgent yes
    
    # GitLab.com
    Host gitlab.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_gitlab
      AddKeysToAgent yes

    Ssh কনফিগারেশন ম্যান পৃষ্ঠা থেকে : যদি এই বিকল্পটি হ্যাঁ সেট করা থাকে এবং কোনও ফাইল থেকে একটি কী লোড করা হয়, কী এবং তার পাসফ্রেজটি এজেন্টের সাথে ডিফল্ট আজীবনের সাথে যুক্ত করা হয়, যেন ssh-add (1) দ্বারা।

ডিফল্ট সর্বাধিক আজীবন চিরকাল বা ssh-agentপ্রক্রিয়াটি মারা না যাওয়া অবধি (নিজেই টাস্ক ম্যানেজার থেকে বা আপনার পিসি বন্ধ হয়ে যাওয়ার পরে)। যদি আপনি একটি সসীম সময়সীমা ব্যবহার করতে চান তবে আপনি এটি এসএস-এজেন্টের -tপ্যারামিটার দিয়ে সেট করতে পারেন । উপরের প্রথম পদক্ষেপ থেকে ব্যাশ স্ক্রিপ্টে লাইনটি পরিবর্তন করুন, উদাহরণস্বরূপ 30 মিনিটের কী ক্যাশে জীবনকাল:

(umask 077; ssh-agent -t 30m >| "$env")

অন্যান্য সময় বিন্যাস যোগ্যতা অর্জনের জন্য এখানে দেখুন ।


3

আপনি .bashrcআপনার ব্যবহারকারীর হোম ডিরেক্টরিতে একটি ফাইল তৈরি করতে পারেন C:/Users/youruserএবং এতে রেখে দিতে পারেন :

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

এই স্ক্রিপ্টটি প্রতিবার চালানোর পরে চালিত করে। সুতরাং আপনাকে একবার পাসওয়ার্ডটি প্রবেশ করতে হবে, কখন git-bashশুরু হবে!

বাশের কিছু সংস্করণের .bash_profileপরিবর্তে ফাইলের প্রয়োজন হয় .bashrc, তাই কেবল ক্লোন ক্ষেত্রে .bashrc:

copy .bashrc .bash_profile

1

আপনি যখন -k আরগ যুক্ত করার চেষ্টা করতে পারেন;

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