গিট কমিট স্বাক্ষর ব্যর্থ হয়েছে: গোপন কী উপলব্ধ নেই


87

গিট ব্যবহার করে প্রতিশ্রুতি দেওয়ার চেষ্টা করার সময় আমি এই ত্রুটিটি পাচ্ছি।

gpg: skipped "name <name@mail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object

আমি নীচের মতো একটি নতুন কী তৈরি করেছি তবে এটি এখনও একই ত্রুটি দেয়

gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub   2048R/35F5FFB2 2016-04-23
uid                  name (New key) <name@mail.com>
sub   2048R/112A8C2D 2016-04-23

গোপন কীটি উপরের মতোই

গিট ট্যাগিংয়ের জন্য আমি এই একটি জিপিজি কী তৈরি করেছি এবং পদক্ষেপগুলি অনুসরণ করেছি কিন্তু এটি এখনও কার্যকর হয় না, কোনও ধারণা?


4
উইন্ডোজ ব্যবহারকারীদের ক্ষেত্রে, এটি সম্ভবত এই ত্রুটির মুখোমুখি হওয়ার কারণ উইন্ডোজে গিট সঠিক জিপিজি ব্যবহার করে না। PATH- তে সঠিক বাইনারি খুঁজে পাচ্ছেন না, গিটটি তার ক্ষুদ্রায়িত এমএসওয়াইএসের অভ্যন্তরে অভ্যন্তরীণভাবে বান্ডিল জিপিজি ব্যবহার করতে রিসর্ট করে, যেখানে আপনার কীগুলি রয়েছে সে সম্পর্কে কোনও জ্ঞান নেই। Gpg.program বা G (NU) PGHome ভেরিয়েবল সেট করা নিরসন করবে, যেমন নীচের কয়েকটি উত্তরে বর্ণিত।
আবেল চেউং

উত্তর:


79

গোপন কীটি ব্যবহার করার আগে আপনাকে এটি কনফিগার করতে হবে।

git config user.signingkey 35F5FFB2

অথবা আপনি যদি প্রতিটি সংগ্রহস্থলের জন্য একই কী ব্যবহার করতে চান তবে বিশ্বব্যাপী এটি ঘোষণা করুন।

git config --global user.signingkey 35F5FFB2

উত্স: গিট সরঞ্জাম - আপনার কাজের স্বাক্ষর


আপনাকে অনেক ধন্যবাদ লিওনার্দো! এটি কাজ করে !! দুঃখিত যদি প্রশ্নটি মূর্খ ছিল, তবে কীভাবে এটি সমাধান করবেন আমার কোনও ধারণা ছিল না।
এমিলিও মেনান্ডেজ

দুর্দান্ত! ব্যবহারকারীর স্বাক্ষর কীটি নির্দিষ্ট করে তোলা এক কিতে একাধিক ইমেল ঠিকানা থাকা এবং গিট ইমেল এবং কীতে প্রথম ঠিকানার মধ্যে মিল নেই।
ব্যবহারকারী 2943160

4
এটি কি সরকারী রেপোতে গোপন কী সহ .gitconfig সংরক্ষণ করা নিরাপদ?
melihovv

4
@ মালিহভভ এই রেকর্ডটির জন্য যেমনটি জিজ্ঞাসা করেছিলেন: - গোপন কীটি আপনার জিপিজি কিরিং এ থাকা আবশ্যক। কেবলমাত্র সেই কীটির হ্যাশ আইডি কনফিগারেশনে সংরক্ষণ করা হয়।
বিআরপোকক

4
আমার সাথে এটিও করতে হয়েছিল git config --global gpg.program gpg2
স্প্লাক্টার

112

এটি আমার জন্য উইন্ডোজ 10 এ কাজ করেছে (নোট করুন যে আমি gpg.exe এর নিখুঁত পথ ব্যবহার করি):

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

এই ত্রুটিটি আমি ঠিক করার আগে পেয়েছিলাম:

gpg: skipped "3E81C*******": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object

4
secret key not availableভিএস কোডের সাথে এই ত্রুটিটি পেয়েছে এবং সেটিংস gpg.exeঅবস্থান সেট করে এটি সমাধান করেছে।
দাউদ

4
এটি আমার পক্ষেও কাজ করেছিল। বিশেষত গিথুব থেকেই কনফিগার করার পদক্ষেপগুলি অনুসরণ করার পরে ।
বাস জি

4
আমার উইন্ডোজ ইনসাইডারটি যতবার ইনস্টল করে, এই বিকল্পটি পুনরায় সেট করে। এর জন্য ধন্যবাদ :)
ভিআরজি

জিপিজির পরম পথ যুক্ত করার পরে এটি আমার পক্ষে কাজ করেছিল। অনেক ধন্যবাদ.
আদর্শ শ্রীবাস্তব

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

64

আমার জন্য কী কাজ করেছে তা যুক্ত হচ্ছিল

git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"

আপনি যদি gpg2.exe এর পুরো পথটি খুঁজতে চান:

where gpg2.exe

4
GnuPG- র ইনস্টল করা সংস্করণ অনুসারে এর gpg.exeপরিবর্তে আপনার এটি করা দরকার gpg2.exe
মার্ক রোটভিল

14

আমি এই সমস্ত উত্তরগুলি সম্পূর্ণ করতে পছন্দ করি কারণ এর সাথে আমার অনেকগুলি সমস্যা রয়েছে।

এই উদাহরণগুলি --globalপতাকাটি ব্যবহার করে , তবে আপনি যদি স্থানীয়ভাবে এই জিনিসগুলি করতে চান তবে আপনি এটি সরাতে পারেন।

গিটে গোপন কীটি কনফিগার করুন

git config --global user.signingkey 35F5FFB2

গিটে ডাইনি জিপিজি প্রোগ্রাম টিউ কনফিগার করুন (alচ্ছিক)

কিছু সিস্টেম (উদাহরণ হিসাবে উবুন্টু) থাকতে পারে gpgএবং gpg2একই সাথে থাকতে পারে। আপনি ব্যবহার করবেন তা নির্দিষ্ট করা দরকার specifygpg2

git config --global gpg.program gpg2

GPG_TTY রফতানি করুন (alচ্ছিক)

আপনি যদি এই কমান্ডটি একটি ssh পরিবেশে ব্যবহার করেন তবে নিম্নলিখিত ত্রুটি রয়েছে: Inappropriate ioctl for deviceঅথবা gpg: échec de la signature : Ioctl() inapproprié pour un périphérique। এটি এর মাধ্যমে স্থির করা যেতে পারে:

export GPG_TTY=$(tty)

জিপিজি গাইতে স্বয়ংক্রিয় সক্ষম করুন (alচ্ছিক)

git config --global commit.gpgsign true

আপনি যদি আর এটি ব্যবহার না করতে চান তবে কীভাবে কেউ এটি অক্ষম করে?
ম্যাডোনা সাইম্বুয়া

4
এটি অক্ষম করতে আপনি --unsetসেই git configআদেশগুলিতে পতাকা যুক্ত করতে পারেন
আলফায়াক্স

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

7

আমার একটি পরিস্থিতি হয়েছিল যা উইন্ডোজ 10 মেশিনে আমার সাথে একই ঘটছিল।

$ git commit -m "Improve logging, imports and show time executed"
gpg: signing failed: Operation cancelled
gpg: signing failed: Operation cancelled
error: gpg failed to sign the data
fatal: failed to write commit object

আদেশগুলি "C:\Program Files (x86)\GnuPG\bin\gpg.exe" --list-secret-keys --keyid-format LONGএবং gpg --list-secret-keys --keyid-format LONGযেখানে আমাকে সম্পূর্ণ ভিন্ন ফলাফল দেয়!

$ where gpg
C:\Program Files\Git\usr\bin\gpg.exe
C:\Program Files (x86)\GnuPG\bin\gpg.exe

মূল কারণটি পূর্বের উত্তরগুলির সাথে সম্পর্কিত ছিল তবে অন্যরকমভাবে:

  • আমি জিপিজির গিট (কনফিগার পাথ) সংস্করণ ব্যবহার করে জিপিজি কী তৈরি করছিলাম
  • কমিটের জন্য জিপিজি-র ডাউনলোড সংস্করণটি ব্যবহার করতে গিটটি কনফিগার করা হয়েছিল।
  • মনে হয় জিপিজি বাস্তবায়নগুলি তাদের নিজস্ব শংসাপত্রের ডেটাবেস এবং সঞ্চয়স্থান ব্যবহার করে।

আমি আশা করি এটি এই বার্তায় হোঁচট খায় এবং পূর্ববর্তী উত্তরগুলি থর সমস্যা সমাধান না করে এমন কাউকে সহায়তা করতে পারে।


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

5

আপনাকে ভেরিয়েবল সেট করতে হবে GNUPGHOME। এটি ছাড়া, GnuPG আপনার কীগুলি সন্ধান করতে সক্ষম নয়।

# On unix add it to your path

# On windows it will usually be under: 
<drive>:\Users\<username>\AppData\Roaming\gnupg

ইউনিক্সে এটি কেবল এটিকে পথে যুক্ত করে।
উইন্ডোজ আপনাকে কন্ট্রোল প্যানেল খুলতে হবে এবং এটি হিসাবে সেট করতে হবে

System Variable
  Name: GNUPGHOME
  Path: <drive>:\Users\<username>\AppData\Roaming\gnupg

4
আমার জন্য ছিল না GNUPGHOME। সঙ্গে GPGHOMEএটা আমার জন্য কাজ করে
Sysix

1

আমার একই সমস্যা ছিল .gitconfig- থাকা গিট নাম এবং ইমেল স্টোরটি জিপিজি কী সরবরাহ করা থেকে আলাদা ছিল । ম্যাচ করার জন্য আমি সেগুলি পরিবর্তন করেছি এবং এটি কাজ শুরু করে।


1

ব্যবহার "C:\Program Files\Git\usr\bin\gpg.exe"ছিল আমার জন্য সমাধান।
ক্লিওপেট্রা আনইনস্টল করতে হয়েছিল। এটি দিয়ে, এটি কাজ করে না।

সুতরাং, সংক্ষেপে;

  • ক্লিওপেট্রার দরকার নেই, পরিবর্তে জিআইটি ডিফল্ট ব্যবহার করুন।

  • git config --global user.signingkey Y0URK3Y
    git config --global commit.gpgsign true
    git config --global gpg.program "C:\Program Files\Git\usr\bin\gpg.exe"
    

-4

আপনার নিজের অধিকার যেখানে থাকতে পারে আপনার নিজের সংগ্রহস্থলটিকে ক্লোন করতে হবে। আমি যখন অন্য একজনের সংগ্রহস্থলটিকে ক্লোন করেছিলাম তখন আমার এই সমস্যা হয়েছিল।

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