আমি কীভাবে জিপিজি কীটি অপসারণ করতে পারি যা আমি এপি-কী অ্যাড ব্যবহার করে যুক্ত করেছি?


147

আমার সার্ভারের কীরিংয়ের আর চাবি দরকার নেই। এটি অপসারণ করা সম্ভব? আমি এই কমান্ডটি ব্যবহার করে কীটি যুক্ত করেছি:

 curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -

সাহায্য করার জন্যে ধন্যবাদ


আমি এই প্রশ্নটি দরকারী বলে খুঁজে পেয়েছি কারণ বর্তমানে উবুন্টু 18.04 জিইউআই বলে Software & Updates-->Authenticationমনে হচ্ছে এটি কাজ করে না (এটি কোনও বিশ্বস্ত সফ্টওয়্যার কী মুছে ফেলতে পারে না)। পরিবর্তে, নীচে প্রদত্ত ক্লিপ সেমিডিএস ব্যবহার করতে হয়েছিল।
সান বিয়ার

উত্তর:


198

প্রথমে আপনার যুক্ত করা কীটির কী আইডিটি খুঁজে বের করতে হবে। আদেশ দ্বারা এটি করুন:

sudo apt-key list

প্রতিটি এন্ট্রি এর মতো দেখতে আপনার সমস্ত কীগুলি তালিকাভুক্ত করবে:

pub   1024R/B455BEF0 2010-07-29
uid                  Launchpad clicompanion-nightlies

একবার আপনি মূর্ত আউট আছে কোন কী মুছে ফেলার জন্য কমান্ড ব্যবহার করুন sudo apt-key del <keyid>যেখানে <keyid>চাবি আপনি আপনার কি-রিং থেকে সরাতে চান প্রকৃত keyid প্রতিস্থাপিত হয়েছে।

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$

@ রেইমন্ড কোনও সমস্যা নেই :)
নিতিন ভেঙ্কটেশ

1
আহ আমি দেখছি অনন্য আইডিটি লাইন লেবেল পাবে রয়েছে, লাইনটি লেবেলযুক্ত নয় not
ctrl-alt-delor

6
উবুন্টুতে 16.10 এর ফলাফলগুলি কিছুটা আলাদা বলে মনে হচ্ছে:pub rsa4096 2012-05-11 [SC] 8439 .... uid ....
এমএক্সডিএসপি

দেখে মনে হচ্ছে এটি 18.04
kennyB

কীটি মোছার পরে, আমি একটি নতুন সমস্যার মুখোমুখি হয়েছি, এর পরে আমার The following signatures couldn't be verified because the public key is not available: NO_PUBKEYকী করা উচিত?
কোরি

126

16.10-এ আপনি তালিকা কমান্ডটি ব্যবহার করার পরে সংক্ষিপ্ত কী আইডিটি আর প্রদর্শিত হবে না, তবে এটি লং হেক্সের শেষ 8 টি অক্ষর।

উদাহরণস্বরূপ নীচের কীটির জন্য কী আইডি

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

কী আইডি হবে EFE21092


17
খুব সহায়ক, আপনাকে ধন্যবাদ। এটি অত্যন্ত অপ্রয়োজনীয় ইউএক্স।
এসকলভিন

11
@ এসক্লভিন আপনি কেবলমাত্র এটি করতে পারেন sudo apt-key del "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092"এবং আমি মনে করি এটি পুরো ফিঙ্গারপ্রিন্টটি ব্যবহার করা আরও নিরাপদ, কী-এর ডুপ্লিকেট থাকতে পারে (কমপক্ষে আপনি যখন ইমেলগুলির জন্য পিজিপি ব্যবহার করেন, আমি আপনাকে পড়তে হবে আপনার পুরো ফিঙ্গারপ্রিন্টটি কেবল কীডটি নয়) শেয়ার করা উচিত।
ব্যাপটেক্স

1
খুব সহায়ক, 17.10 এর জন্যও খুব সত্য!
হার্টমুট পি।

2
এবং 18.04.1 এর জন্য।
রাশ ব্যাটম্যান

ধন্যবাদ. ভয়াবহ ডিজাইনের সিদ্ধান্ত।
ব্রায়ান স্মিথ

4

আমি জিনিসগুলিকে আরও সহজ করতে এবং আইডির পরিবর্তে একটি স্ট্রিং ব্যবহার করে একটি শর্ট স্ক্রিপ্ট তৈরি করেছি।

আপনি যদি জানেন এমন কীতে কোনও অনন্য স্ট্রিং থাকে তবে আপনি আমার স্ক্রিপ্টটি ব্যবহার করতে পারেন।
যেমন ওয়েবমিনের ক্ষেত্রে আমার ক্ষেত্রে

pub   1024D/11F63C51 2002-02-28
uid                  Jamie Cameron <jcameron@webmin.com>
sub   1024g/1B24BE83 2002-02-28

আমি নিশ্চিত যে আমার সিস্টেমে কেবল ওয়েবমিন কীটি সেই jcameronস্ক্রিপ্টটি ব্যবহার না করে সেই অনুযায়ীটি সরিয়ে ফেলতে চাই remove

আমি এটি হিসাবে সংরক্ষণ ~/removeAptKey

এবং এটি হিসাবে চালান

sudo ./removeAptKey jcameron

আউটপুটটি এমন কিছু হওয়া উচিত

KEYID: 11F63C51
OK

আমার লিপিটি এখানে:

#!/bin/bash

function printKeys(){
    echo "Installed keys are"
    echo ""
    sudo apt-key list
}

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

if [[ $# -eq 0 ]]
then
    echo "No key name provided"
    exit 1
fi

UNIQUE=$1

sudo apt-key list | grep "${UNIQUE}" -B 1 > result.temp

LENGTH=$(cat result.temp | wc -l)

if [[ ${LENGTH} -gt 2 ]]
then
    echo "Attention you found more than 1 key. Use a more specific string."
    printKeys
    exit 2
fi

if [[ ${LENGTH} != 2 ]]
then
    echo "Key not found. Doing nothing."
    printKeys
    exit 3
fi

KEYID=$(cat result.temp | grep 'pub' | cut -d " " -f 4 | cut -d "/" -f 2)
echo "KEYID: "$KEYID

apt-key del ${KEYID}

rm result.temp

প্রথমে আমি আমার কী এর ব্লকের উপরের দুটি লাইন পেয়েছি:

  • sudo apt-key list: যথারীতি অ্যাপটি কীগুলি তালিকাভুক্ত করে
  • grep '${UNIQUE}' -B 1: কেবল অনন্য কী কী স্ট্রিং jcameronএবং -B 1রেখাটি আগে থাকা লাইনটি নিন
  • > result.temp: এটি একটি ফাইলে সংরক্ষণ করুন (যা পরে সরানো হবে)

যদি এটি ঠিক 2 টি লাইন ফিরে আসে (-> ঠিক 1 কী পেয়েছে) তবে আমি এগিয়ে যাই:

  • grep 'pub': এখন pupকী আইডি দিয়ে কেবল লাইনটি নিন
  • cut -d " " -f 4: line রেখার চতুর্থ শব্দটি ধরুন (প্রথমটি pubদুটি স্পেসে আসার চেয়ে আগে আমরা string we এর পরে থাকা স্ট্রিংয়ের চেয়ে বেশি হবে)
  • cut -d "/" -f 2: শুধুমাত্র পরে অংশ নিতে /

এবং অবশেষে এই কী এবং ক্লিনআপ মুছুন

  • apt-key del ${KEYID}(আমার ক্ষেত্রে 11F63C51)
  • rm result.temp: এই ফাইলটির আর দরকার নেই

আমি এটি কোনও পরামিতি ছাড়াই চালিয়েছিলাম এবং এটি আমার সমস্ত কী মুছে ফেলে। ;
গ্যাব্রিয়েল ফেয়ার

অন্য কারও যদি চাবি মোড়ানো থাকে তবে আমি এই নির্দেশাবলী অনুসরণ করে এটি ঠিক করতে সক্ষম হয়েছি
গ্যাব্রিয়েল ফেয়ার

হু? এটা কিভাবে হল? যদি কোনও প্যারামিটার না থাকে তবে এটি কোনও "কোনও কী নাম দেওয়া হয়নি" দিয়ে প্রস্থান করা উচিত ..
derHugo

@ ওডারহাগো নিশ্চিত নন তবে কী এমন হতে পারে #যে যদি ক্লজটি অপরাধী হয়?
বঞ্চিত হয়েছে

@ ডেফুজেড আপনি যদি বোঝাতে চান $#তবে না। এটি প্রদত্ত পরামিতিগুলির পরিমাণ প্রদান করে।
derHugo

2

আমি জানি আমি হয়ত দেরি করতে পেরেছি তবে এটি অর্জনের জন্য এই এক-লাইন কমান্ডটি ভাগ করে নিতে চেয়েছিলাম।

দ্রষ্টব্য : এটি কেবল তখনই কাজ করবে যদি আউটপুটটি একটি অনন্য কী হয়।


16.04 অবধি উবুন্টু সংস্করণ (2018-12-22 আপডেট হয়েছে):

apt-key del $(apt-key list | awk 'NR=='$(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":")'{print;exit}' | awk '{print $2}' | cut --fields 2 --delimiter "/")

FOOBARইউআইডি নাম কোথায় ?


16.10 থেকে উবুন্টু সংস্করণ:

apt-key del $(apt-key list | awk 'NR=='`expr $(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":") - 1`'{print;exit}')

FOOBARইউআইডি নাম কোথায় ?


1
আমি নিশ্চিত না কেন, তবে 16.04আপনি সরবরাহিত কমান্ডটি চালানোর চেষ্টা করার সময় আমি একটি ত্রুটি পেয়েছি । awk: line 1: syntax error at or near {কিন্তু কোণ ম্যাচ ধনুর্বন্ধনী, তাই আমি নিশ্চিত কেন এই কাজ করে না নই
গ্যাব্রিয়েল ফেয়ার

@ গ্যাব্রিয়েলফায়ার লক্ষ্য করার জন্য ধন্যবাদ, জুনে এটি কাজ করছে (আমি এটি আমার কনসোল থেকে কপি-পেস্ট করেছি) তবে এখন মনে হয় এটি আপডেট হয়েছে এবং apt-key listফর্ম্যাটটি পরিবর্তিত হয়েছে। এখন মনে হচ্ছে এটি আবার কাজ করছে। (সম্পাদনা: এটিকে
সুপারভাইজার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.