কীভাবে আমি আমার পাসওয়ার্ড ক্যাশে জিপিজি এজেন্ট পেতে পারি?


21

আমি একজন বিকাশকারী এবং আমি সাধারণত আমার জিপিজি কী দিয়ে আমার গিটকে স্বাক্ষর করি। আমি জিপিজি এজেন্টকে ওএসএক্সে সঠিকভাবে কাজ করতে সক্ষম হয়েছি যাতে এটি আমাকে কেবল একবারে আমার পাসওয়ার্ডের জন্য জিজ্ঞাসা করে তবে উবুন্টু ১.0.০৪-তে একই জিনিস কাজ করতে আমার সমস্যা হচ্ছে।

আমি যা করছি তা এখানে:

  • আমি আমার জিপিজি কী সেটআপ / ইত্যাদি পেয়েছি
  • আমি একটি গিট ডিরেক্টরিতে আছি।
  • আমি গিটে কিছু ফাইল যুক্ত করছি।
  • তারপরে আমি তাদের প্রতিশ্রুতিবদ্ধ করতে যাই ( git commit), এবং এমন একটি জিপিজি পাসওয়ার্ড অনুরোধ পাওয়া যায় যা দেখতে:

    $ git ci
    
    You need a passphrase to unlock the secret key for
    user: "Randall Degges <r@rdegges.com>"
    4096-bit RSA key, ID 8F700DA2, created 2016-04-05
    
    [master 1740961] blah
     1 file changed, 1 insertion(+)
    

সমস্যাটি হ'ল: প্রতিবার আমি প্রতিশ্রুতিবদ্ধ হয়ে গেলে আমার জিপিজি পাসওয়ার্ডের জন্য আবার অনুরোধ জানানো হয়।

আমি যা করতে চাই তা হ'ল জিপিজি এজেন্টটি পুরো 1 দিনের জন্য আমার পাসওয়ার্ডটি ক্যাশে রাখতে কনফিগার করে, তাই এটি কেবল একবার প্রবেশ করা দরকার।

আমি প্রচুর ডকুমেন্টেশন এবং ব্লগ পোস্ট পড়েছি এবং আমি এ পর্যন্ত যা চেষ্টা করেছি তা এখানে ...

প্রথমত, আমি ~/.zshrcনিম্নলিখিতগুলি সেট করতে আমার ফাইল (আমি zsh ব্যবহার করি) পরিবর্তন করেছি :

# GPG Agent
export GPG_TTY=$(tty)
export GPGKEY=8F700DA2

এখন, আমি যা পড়েছি তা থেকে জিপিজি-এজেন্ট পুনরায় চালু করার পরে একা এই কৌশলটি করা উচিত, তবে তা হয় না।

সুতরাং, পরবর্তী কাজটি আমি হ'ল পৃষ্ঠায় বর্ণিত একটি ~/.gnupg/gpg-agent.confফাইলকে আমি সংজ্ঞায়িত করেছি man gpg-agent:

# Set the default cache time to 1 day.
default-cache-ttl       86400
default-cache-ttl-ssh   86400

# Set the max cache time to 30 days.
max-cache-ttl           2592000
max-cache-ttl-ssh       2592000

এটিরও কোনও প্রভাব নেই।

আমি বিভিন্ন ব্লগ পদ্ধতি ইত্যাদির চেষ্টা করেছি, কিন্তু কিছুই কার্যকর বলে মনে হচ্ছে না। আমি যে জিনিসগুলি মিস করছি তার মধ্যে কেউ আমাকে কিছু পয়েন্টার দিতে পারে?

উত্তর:


24

ক্যাশে বার সেট আপ করার gpg-agent.confপাশাপাশি, আপনাকে এটিও নিশ্চিত করতে হবে যে GnuPG প্রকৃতপক্ষে হস্তক্ষেপ করছে gpg-agent। GnuPG 2 এবং উপরের দিকে সাধারণত হয়, তবে GnuPG 1 শাখাটি করে না। ডিফল্টরূপে গিট gpgবাইনারি ব্যবহার করে , যা (এই উত্তরটি লেখার সময়) এখনও GnuPG 1, অন্যদিকে GnuPG 2 gpg2বেশিরভাগ সিস্টেমে ইনস্টল করা আছে।

শেষ পর্যন্ত আপনার দুটি সম্ভাবনা রয়েছে:

  • gpg2গিট কনফিগারেশন পরিবর্তন করে ব্যবহার করতে গিট সেট আপ করুন:

    git config --global gpg.program gpg2
    
  • সেট আপ gpgব্যবহার করবেন (GnuPG মূলত 1) gpg-agentযোগ করে use-agentকরতেgpg.conf

0

উপরের উত্তর ছাড়াও, আপনি কেবল gpgআপনার সিস্টেমে ডিফল্টটিকে gpg2পরিবর্তে বদলে নিতে পারেন gpg1

যদি আপনার পক্ষে git config --global gpg.program gpg2কাজ করে তবে আপনি এটি আপনার গিট কনফিগারেশনে ছেড়ে যেতে চান না (আমার ক্ষেত্রে কারণ আমি ম্যাকোজে একই কনফিগারেশন ব্যবহার করি) তবে আপনি কেবল ডিফল্টটি সরিয়ে নিতে পারবেন gpg

আমি এখানে গাইড অনুসরণ করেছিলাম , যা ঠিক ছিল:

$ sudo mv /usr/bin/gpg /usr/bin/gpg1
$ sudo update-alternatives --verbose --install /usr/bin/gpg gnupg /usr/bin/gpg2 50

এটি gpg1পুরানো gpgবাইনারি এবং সিমলিঙ্কগুলি তৈরি করে /usr/bin/gpg -> /usr/bin/gpg2(নাম gnupg এবং অগ্রাধিকার 50 সহ)।

ডিফল্ট পরিবর্তন gpgতত্ত্বীয়ভাবে আপনার সিস্টেমে কিছু প্যাকেজকে ভেঙে দিতে পারে, তবে ডেবিয়ান স্ট্রেচ (দেবিয়ানের বর্তমান স্থিতিশীল সংস্করণ) একইভাবে ডিফল্ট হিসাবে সেট gpg2করেgpg , সুতরাং আপনার খুব বেশি সমস্যা না হওয়া উচিত।

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