Reprepro রফতানিতে স্বাক্ষর কীটি পাওয়া যায় নি


13

আমাদের একটি বেসরকারী ডিবিয়ান সংগ্রহস্থল রয়েছে যা বহু বছর আগে পূর্ববর্তী সিস্টেম প্রশাসক দ্বারা সেট আপ করা হয়েছিল। প্যাকেজগুলি পুরানো কী দ্বারা স্বাক্ষরিত হয়েছিল, 7610DDDE (যা আমাকে প্রত্যাহার করতে হয়েছিল), রেপো সার্ভারে রুট ব্যবহারকারীর জন্য এখানে দেখানো হয়েছে।

# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/2D230C5F 2006-01-03 [expired: 2007-02-07]
uid                  Debian Archive Automatic Signing Key (2006)  <ftpmaster@debian.org>

pub   1024D/7610DDDE 2006-03-03 [revoked: 2016-03-31]
uid                  Archive Maintainer <root@xxxxxxxxxx.com>

pub   4096R/DD219672 2016-04-18
uid                  Archive Maintainer <root@xxxxxxxxxx.com>

নীচের সমস্ত কমান্ডগুলি রুট ব্যবহারকারী হিসাবে রয়েছে। আমি স্বাক্ষর করার জন্য স্বচ্ছতার সাথে তৈরি করা নতুন সাব কীটি ব্যবহার করতে আমি সংগ্রহস্থল / কনফিড / বিতরণ ফাইলটি পরিবর্তন করেছি:

Architectures: i386 amd64 source
Codename: unstable
Components: main
...
SignWith: DD219672

তবে আমি যখন প্যাকেজ আপডেট করি তখন dput ব্যবহার করি

Could not find any key matching 'DD219672'!
ERROR: Could not finish exporting 'unstable'!
This means that from outside your repository will still look like before (and
should still work if this old state worked), but the changes intended with this
call will not be visible until you call export directly (via reprepro export)

এবং আমি যখন সরাসরি প্রোপোজ রফতানি চালাই তখন আমি পাই:

# reprepro -V export unstable
Exporting unstable...
 generating main/Contents-i386...
 generating main/Contents-amd64...
Could not find any key matching 'DD219672'!
ERROR: Could not finish exporting 'unstable'!

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

# GNUPGHOME=/root/.gnupg reprepro -V export unstable

একটি থ্রেডটি একটি ডামি ফাইলটিতে স্বাক্ষর করে কীটি পরীক্ষা করার পরামর্শ দিয়েছিল যা দুর্দান্ত কাজ করছে বলে মনে হয়েছে ... কমপক্ষে এটিতে কোনও ত্রুটি নেই এবং আমি এটি 576 বাইট বেল্ট.gpg ফাইলটি শেষ করে শেষ করেছি।

# touch bla
# gpg -u DD219672 --sign bla

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

# gpg --list-secret-keys DD219672
sec   4096R/DD219672 2016-04-18
uid                  Archive Maintainer <root@xxxxxxxxxx.com>

এবং অবশেষে আমি সিস্টেম অ্যাডমিনের সাথে যোগাযোগ করতে সক্ষম হয়েছি যা প্রথমে আমাদের রেপসগুলি সেট আপ করে এবং সে পাসফ্রেজ ছাড়াই কী চেষ্টা করার পরামর্শ দিয়েছিল suggested সুতরাং আমি একটি নতুন স্বাক্ষর কী উত্পন্ন করলাম, ডিডি 219672, এটি প্রকাশিত, উপরের পদক্ষেপগুলি দিয়ে আবার গিয়েছিল তবে একই ফলাফলের সাথে।

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

আমি একটি জিপিজি-এজেন্ট.কোনফ যুক্ত করেছি

debug-level 7
log-file    /root/gpg.agent.log
debug-all

এবং আমি লগতে দেখতে পাচ্ছি যে জিপিজি-এজেন্ট কীগুলি খুঁজে পাচ্ছে না

2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK Pleased to meet you, process 18903
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- RESET
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- OPTION ttyname=/dev/pts/0
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- OPTION ttytype=xterm-256color
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- GETINFO version
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> D 2.1.11
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- OPTION allow-pinentry-notify
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- OPTION agent-awareness=2.1.0
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> OK
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- AGENT_ID
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> ERR 67109139 Unknown IPC command <GPG Agent>
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- HAVEKEY C2C5C59E5E90830F314ABB66997CCFAACC5DEA2F 416E8A33354912FF4843D52AAAD43FBF206252D9 8CE77065EA6F3818A4975072C8341F32CB7B0EF0
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 -> ERR 67108881 No secret key <GPG Agent>
2016-04-18 15:54:00 gpg-agent[15582] DBG: chan_5 <- [eof]

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

উত্তর:


19

আমারও একই সমস্যা ছিল এবং অনেক হতাশার পরে অবশেষে যা চলছে তা ট্র্যাক করে নিলাম।

repreproটুল ব্যবহার gpgme, যা উপর ভিত্তি করে তৈরি gnupg2। এর একটি সাম্প্রতিক প্রকাশটি কীভাবে গোপন কীটি রিং পরিচালিত হবে তা পরিবর্তিত করেছে: https://www.gnupg.org/faq/what-new-in-2.1.html

পাবলিক কী জুটিকে দুটি ফাইলে রাখার জন্য জিপিজি ব্যবহার করত: pubring.gpgএবং secring.gpg... GnuPG ২.১ এর সাহায্যে এটি পরিবর্তিত হয়েছে ... নো-সেক্রিং পদ্ধতিতে স্থানান্তরকে স্বাচ্ছন্দ্য করতে, জিপিজি একটির উপস্থিতি সনাক্ত করে secring.gpgএবং ফ্লাইটের কীগুলি রূপান্তর করে জিপিজি-এজেন্টের মূল স্টোরটিতে ( private-keys-v1.dএটি GnuPG হোম ডিরেক্টরি ( ~/.gnupg) এর নীচে ডিরেক্টরি )। এটি কেবল একবারই করা হয় এবং একটি বিদ্যমান secring.gpgতখন জিপিজি দ্বারা স্পর্শ করা হয় না। এটি GnuPG 2.1 এর সাথে পুরানো GnuPG সংস্করণগুলির সহ-অস্তিত্বের অনুমতি দেয়। তবে, নতুন জিপিজি ব্যবহার করে প্রাইভেট কীগুলিতে কোনও পরিবর্তন GnuPG- র প্রাক-2.1 সংস্করণ এবং তদ্বিপরীত ব্যবহার করার সময় প্রদর্শিত হবে না।

সুতরাং, আপনি জিপিজি দিয়ে একটি নতুন কী তৈরি করলে, জিপিজি 2 এটি দেখতে পাবে না এবং বিপরীতে।

দ্রুত সমাধান যা আমার পক্ষে কাজ করেছে:

gpg --export-secret-keys | gpg2 --import -

এবং যদি আপনাকে অন্যভাবে যেতে হয় তবে অবশ্যই:

gpg2 --export-secret-keys | gpg --import -

আপনার সেটআপের উপর নির্ভর করে আপনি যুক্ত করতেও চাইবেন / প্রয়োজন হতে পারে --export-secret-subkeys

উপরের কাজটি করার পরে, repreproআমার নতুন কীটি দিয়ে সঠিকভাবে কাজ করেছেন।


2
ডুড, এটিকে ট্র্যাক করার জন্য আপনি কোনও মেডেল প্রাপ্য।
অ্যান্ড্রু শুলম্যান

2

আমার জন্য সমস্যাটি ছিল আমি ব্যবহারকারী হিসাবে কী তৈরি করেছি এবং মূল হিসাবে ডেপিসপ্রো চালিয়েছি

যা ঘটেছিল তা হ'ল যে কীগুলি যেটি আমি "ব্যতীত sudo" উত্পন্ন করে তা আমার স্থানীয়তে যুক্ত করা হয় pubring.gpg। আমি যখন চালনা sudo reprepro ...করি তখন আমি এটিকে মূল হিসাবে চালিত করি এবং তাই এটি মূলের মূল কীটি আবিষ্কার করার চেষ্টা করে pubring.gpgএবং সম্ভবত এটির সন্ধান করে না।

সমাধানটি হ'ল সমস্ত gpgকমান্ড রুট হিসাবে চালানো (যেমন sudo -iএবং তারপরে gpg --gen-key)। নিশ্চিত হয়ে নিন যে আপনি চালানোর সময় sudo gpg --list-keysআপনার পছন্দসই কী এবং লাইনটি দেখতে পাবেন /root/.gnupg/pubring.gpg

আশা করি এইটি কাজ করবে!

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