উত্তর:
প্রথমে আপনার যুক্ত করা কীটির কী আইডিটি খুঁজে বের করতে হবে। আদেশ দ্বারা এটি করুন:
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
$
pub rsa4096 2012-05-11 [SC] 8439 .... uid ....
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY
কী করা উচিত?
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
sudo apt-key del "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092"
এবং আমি মনে করি এটি পুরো ফিঙ্গারপ্রিন্টটি ব্যবহার করা আরও নিরাপদ, কী-এর ডুপ্লিকেট থাকতে পারে (কমপক্ষে আপনি যখন ইমেলগুলির জন্য পিজিপি ব্যবহার করেন, আমি আপনাকে পড়তে হবে আপনার পুরো ফিঙ্গারপ্রিন্টটি কেবল কীডটি নয়) শেয়ার করা উচিত।
আমি জিনিসগুলিকে আরও সহজ করতে এবং আইডির পরিবর্তে একটি স্ট্রিং ব্যবহার করে একটি শর্ট স্ক্রিপ্ট তৈরি করেছি।
আপনি যদি জানেন এমন কীতে কোনও অনন্য স্ট্রিং থাকে তবে আপনি আমার স্ক্রিপ্টটি ব্যবহার করতে পারেন।
যেমন ওয়েবমিনের ক্ষেত্রে আমার ক্ষেত্রে
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
: এই ফাইলটির আর দরকার নেই#
যে যদি ক্লজটি অপরাধী হয়?
$#
তবে না। এটি প্রদত্ত পরামিতিগুলির পরিমাণ প্রদান করে।
আমি জানি আমি হয়ত দেরি করতে পেরেছি তবে এটি অর্জনের জন্য এই এক-লাইন কমান্ডটি ভাগ করে নিতে চেয়েছিলাম।
দ্রষ্টব্য : এটি কেবল তখনই কাজ করবে যদি আউটপুটটি একটি অনন্য কী হয়।
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
ইউআইডি নাম কোথায় ?
16.04
আপনি সরবরাহিত কমান্ডটি চালানোর চেষ্টা করার সময় আমি একটি ত্রুটি পেয়েছি । awk: line 1: syntax error at or near {
কিন্তু কোণ ম্যাচ ধনুর্বন্ধনী, তাই আমি নিশ্চিত কেন এই কাজ করে না নই
apt-key list
ফর্ম্যাটটি পরিবর্তিত হয়েছে। এখন মনে হচ্ছে এটি আবার কাজ করছে। (সম্পাদনা: এটিকে
Software & Updates-->Authentication
মনে হচ্ছে এটি কাজ করে না (এটি কোনও বিশ্বস্ত সফ্টওয়্যার কী মুছে ফেলতে পারে না)। পরিবর্তে, নীচে প্রদত্ত ক্লিপ সেমিডিএস ব্যবহার করতে হয়েছিল।