গিট - ব্যবহারকারী এবং পাসওয়ার্ড সংরক্ষণ করতে উইন্ডোজে .netrc ফাইলটি কীভাবে ব্যবহার করবেন


172

যখন আমি এইচটিটিপি এবং ব্যবহারকারীর - পাসওয়ার্ড দিয়ে একটি রিমোট রিপোজিটরি ক্লোন করতে গিট ব্যবহার করছি তখন উইন্ডোজে একটি নেট নেট ফাইল ব্যবহার করা সম্ভব?

উত্তর:


203

.netrcউইন্ডোজে কোনও ফাইল ব্যবহার করা কি সম্ভব ?

হ্যাঁ: আপনার অবশ্যই:

  • পরিবেশের পরিবর্তনশীল নির্ধারণ করুন %HOME%(প্রি-গিট ২.০, গিট ২.০++ এর সাথে আর প্রয়োজন নেই)
  • একটি _netrcফাইল রাখুন%HOME%

আপনি যদি কোনও CMDসেশনে উইন্ডোজ 7/10 ব্যবহার করেন তবে টাইপ করুন:

setx HOME %USERPROFILE%

এবং %HOME%' C:\Users\"username"' তে সেট করা হবে ।
সেই ফোল্ডারে ( cd %HOME%) যান এবং ' _netrc' নামে একটি ফাইল তৈরি করুন

নোট: আবার, Windows এর জন্য, আপনি একটি 'প্রয়োজন _netrc' ফাইল, না একটি ' .netrc' ফাইল।

এর সামগ্রীটি বেশ মানক ( <examples>আপনার মানগুলির সাথে প্রতিস্থাপন করুন ):

machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>

লুক মন্তব্যগুলিতে উল্লেখ করেছেন:

উইন্ডোজ on এ এমএসজিগিতের সর্বশেষতম সংস্করণটি ব্যবহার করে, আমাকে HOMEপরিবেশের পরিবর্তনশীল সেট করার দরকার নেই । _netrcএকা ফাইল কৌতুক করেনি।

"প্রকৃতপক্ষে " install"গিথুব, .sshসেখানে দির নেই " তে চেষ্টা করার ক্ষেত্রে আমি এটি উল্লেখ করেছি :
git-cmd.batএমএসজিগিতের অন্তর্ভুক্ত %HOME%পরিবেশ পরিবর্তনশীলকে সেট করে :

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%

The মন্তব্যগুলিতে বিশ্বাস করে যে "মনে হয় এটি HTTP প্রোটোকলের জন্য কাজ করবে না"

তবে, আমি উত্তর দিয়েছি যে netrcএটি ব্যবহার করে curlএবং এইচটিটিপি প্রোটোকলের জন্য কাজ করে, যেমন এই উদাহরণে দেখানো হয়েছে ( netrcপৃষ্ঠাতে ' ' দেখুন ):। এখানে HTTP প্রোটোকলের সাথেও ব্যবহৃত: " _netrc/ .netrcবিকল্পেরcURL " to


netrcউইন্ডোজ সমর্থন সহ একটি সাধারণ ফাঁদ হ'ল কোনও উত্স https url কোনও ব্যবহারকারীর নাম নির্দিষ্ট করে তবে গিটটি এটি ব্যবহার করে বাইপাস করবে।

উদাহরণস্বরূপ, যদি আপনার .git/configফাইলটিতে থাকে:

[দূরবর্তী "উত্স"]
     আনুন = + রেফ / হেড / *: রেফার্স / রিমোটস / উত্স / *
     url = https: //bob@code.google.com/p/my-project/

গিট আপনার শংসাপত্রগুলি এর মাধ্যমে সমাধান করবে না, এটির _netrcজন্য আপনার ব্যবহারকারী নামটি সরিয়ে ফিক্স করার জন্য:

[দূরবর্তী "উত্স"]
     আনুন = + রেফ / হেড / *: রেফার্স / রিমোটস / উত্স / *
     url = https://code.google.com/p/my-project/

বিকল্প সমাধান: সঙ্গে Git সংস্করণ 1.7.9+ (জানুয়ারি 2012): এই উত্তরটি থেকে মার্ক Longair বিস্তারিত ক্রেডেনশিয়াল ক্যাশে প্রক্রিয়া যা এছাড়াও আপনি করতে পারবেন না নিচের চিত্রের প্লেইন টেক্সট আপনার পাসওয়ার্ড সংরক্ষণ করি।


সঙ্গে গীত 1.8.3 (এপ্রিল 2013):

আপনি এখন একটি এনক্রিপ্ট করা .netrc (সহ gpg) ব্যবহার করতে পারেন ।
উইন্ডোজে: %HOME%/_netrc( _, ' .' নয়)

ফাইলগুলির সাথে যোগাযোগের জন্য একটি নতুন পঠনযোগ্য কেবল শংসাপত্র সহায়ক (ইন contrib/) .netrc/.authinfoযুক্ত করা হয়েছে।

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

.gpgএক্সটেনশন সহ ফাইলগুলি পার্স করার আগে জিপিজি দ্বারা ডিক্রিপ্ট করা হবে।
একাধিক -fযুক্তি ঠিক আছে। এগুলি ক্রমে প্রক্রিয়াজাত করা হয় এবং পাওয়া প্রথম মিলের এন্ট্রিটি শংসাপত্র সহায়ক প্রোটোকলের মাধ্যমে ফিরে আসে returned

যখন কোন -fঅপশন উল্লিখিত থাকলে .authinfo.gpg, .netrc.gpg, .authinfo, এবং .netrcআপনার হোম ডিরেক্টরীতে ফাইল এই আদেশ ব্যবহার করা হয়।

এই শংসাপত্র সহায়ক সক্ষম করতে:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(দ্রষ্টব্য যে গিট সহায়িকারীর git-credential-নামটিকে " " আরও আগে থেকে সংশোধন করবে এবং পথটিতে এটি সন্ধান করবে))

# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'

#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'

এ একটি পূর্ণ উদাহরণ দেখুন " সেখানে পাসওয়ার্ড টাইপ করা এড়িয়ে যেতে যখন ব্যবহার করে একটি উপায় আছে কিhttps:// github "


গিট 2.18+ (জুন 2018) এর মাধ্যমে আপনি এখন এনক্রিপ্ট করা .netrcফাইলটি ডিক্রিপ্ট করতে ব্যবহৃত জিপিজি প্রোগ্রামটি কাস্টমাইজ করতে পারেন ।

প্রতিশ্রুতিবদ্ধ 786ef50 দেখুন , প্রতিশ্রুতিবদ্ধ f07eeed (12 মে 2018) লুই মার্সাসানো (``) দ্বারা
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 017b7c5 , 30 মে 2018)

git-credential-netrc: gpgবিকল্প গ্রহণ করুন

git-credential-netrcgpggpg.pogram বিকল্পটি নির্বিশেষে ' ' দিয়ে ডিক্রিপ্ট করার জন্য হার্ডকোড ছিল ।
এটি ডিবিয়ানের মতো বিতরণে একটি সমস্যা যা আধুনিক GnuPG কে অন্যরকম কল করে, ' gpg2' এর মতো


@ বারেন্ড: HOMEপরিবেশ পরিবর্তনশীল গুরুত্বপূর্ণ, কারণ এটি উইন্ডোজে ডিফল্টরূপে সংজ্ঞায়িত হয় না। আপনি যে ভেরিয়েবলটি যা চান ডিরেক্টরিতে সেট করতে পারেন (এটি হওয়ার দরকার নেই C:\users\mylogin): উদাহরণস্বরূপ, কর্মক্ষেত্রে, আমি এটি আমার উইন্ডোজ অ্যাকাউন্টের সাথে সম্পর্কিত আমার ব্যক্তিগত রিমোট ডিস্কে সেট করে রেখেছি, যা আমাকে কোনও ক্ষতি না করেই ডেস্কটপগুলি স্যুইচ করতে দেয় আমার .sshবা _netrcসেটিংস।
ভোনসি

@ বারেন্ড: আপনার গিট রেপো ল্যান বা ডাব্লুএন (ইন্টারনেট) সার্ভারে রয়েছে কিনা তাও পরীক্ষা করে দেখুন। http.proxyআপনার পরিবেশের পরিবর্তনশীলগুলিতে আপনাকে একটি সংজ্ঞায়িত করতে হতে পারে । অথবা, বিপরীতে, আপনার সার্ভারকে একটি no_proxyভেরিয়েবলের সাথে যুক্ত করতে , WAN- র মাধ্যমে ল্যান সার্ভারটি অ্যাক্সেস করার চেষ্টা এড়াতে।
ভোনসি

পরিবেশের পরিবর্তনশীলটির নাম এবং মান কী? আপনি কি আরও কিছু নির্দিষ্ট ভনসি হতে পারেন
ডেনিস ডি

@ ডেনিসডিডি: আমি উত্তর এবং মন্তব্যে যে দুটি পরিবেশের ভেরিয়েবল সম্পর্কে কথা বলি তা হ'ল হোম এবং http_proxy। হোম আপনি যে ডিরেক্টরিটি চান তা উল্লেখ করবে। http_proxy আপনার যদি একটি থাকে তবে প্রক্সি ঠিকানাটি উল্লেখ করবে।
ভোনসি

msysgitউইন্ডোজ on-এ সর্বশেষতম সংস্করণ ব্যবহার করে , আমাকে HOMEপরিবেশের পরিবর্তনশীল সেট করার দরকার নেই । _netrcএকা ফাইল কৌতুক করেনি।
লুক

35

উইন্ডোজ শংসাপত্র ব্যবস্থাপকের পরিবর্তে উইন্ডোজের গিট পাসওয়ার্ডগুলি সংরক্ষণ করতে আপনি উইন্ডোজের জন্য গিট শংসাপত্র ব্যবস্থাপক ইনস্টল করতে পারেন _netrc। এটি পাসওয়ার্ডগুলি সংরক্ষণ করার আরও সুরক্ষিত উপায়।


8
দুর্দান্ত উত্তর, আমি খুঁজে পেয়েছি এটিই কেবলমাত্র উত্তর যা আমাকে সমস্ত ব্যবহারকারীর নাম / পাসওয়ার্ডের সরলতা রাখতে দেয় (সুরক্ষিতভাবে) সমস্ত এসএসএইচ কড়কড়িকে মোকাবেলা না করে।
কર્ક ভোল

@ কার্কওয়োল উপরে আমার আপডেটের উত্তরটি দেখুন: আপনি এখন আপনার শংসাপত্রগুলি একটি এনক্রিপ্ট করা .netrcফাইলে সঞ্চয় করতে পারেন । সেশন চলাকালীন আপনাকে একবারও এই শংসাপত্রগুলি প্রবেশ করতে হবে না।
ভনসি

11

এটি এইচটিটিপিএস ব্যবহার করে গিটকে প্রমাণীকরণ করতে দেবে .netrc:

  • ফাইলটির নামকরণ করা _netrcএবং এটিতে অবস্থিত হওয়া উচিত c:\Users\<username>
  • আপনাকে একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে HOME=%USERPROFILE%(কন্ট্রোল প্যানেলে সিস্টেম অপশন ব্যবহার করে সিস্টেম-ওয়াইড এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট করতে হবে। উইন্ডোজের সংস্করণের উপর নির্ভর করে আপনার "অ্যাডভান্সড অপশন" নির্বাচন করতে হতে পারে।)
  • _netrcফাইলটিতে সঞ্চিত পাসওয়ার্ডে স্পেস থাকতে পারে না (পাসওয়ার্ড উদ্ধৃতি দিয়ে কাজ করবে না)।

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

1

আমি _netrcওয়েবসাইট www.course.com থেকে উপকরণ ডাউনলোড করার জন্য একটি উপায় পোস্ট করছি ।

যদি কেউ www.coursera.com এ ওপেন-ক্লাসের উপকরণগুলি ডাউনলোড করতে কোর্স-ডিএল ব্যবহার করতে চলেছে, এবং উইন্ডোজ ওএসে কেউ ".netrc" এর মতো একটি ফাইল ব্যবহার করতে চায় যা ইউনিক্স ওএস-তে যুক্ত করতে যোগ করতে পারে সুবিধার -nপরিবর্তে বিকল্প -U <username> -P <password>। তিনি / তিনি এটি এটি করতে পারেন:

  1. উইন্ডোজ ওএসে হোম পাথটি পরীক্ষা করুন: setx HOME %USERPROFILE%( ভনকের উত্তর দেখুন )। এটি HOMEপরিবেশের পরিবর্তনশীল হিসাবে সংরক্ষণ করবে C:\Users\"username"

  2. ডিরেক্টরিতে সন্ধান করুন এবং C:\Users\"username"একটি ফাইলের নাম তৈরি করুন _netrcদ্রষ্টব্য: কোনও প্রত্যয় নেই। সামগ্রীটি হ'ল:machine coursera-dl login <user> password <pass>

  3. coursera-dl -n --path PATH <course name>শ্রেণীর উপকরণগুলি ডাউনলোড করতে পছন্দ মতো একটি কমান্ড ব্যবহার করুন । এই পৃষ্ঠার জন্য আরও কোর্স-ডিএল বিকল্পগুলির বিবরণ ।

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