তৈরি করার সময় tar.gz ফাইল এনক্রিপ্ট করুন


33

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা বেশ কয়েকটি ডিরেক্টরিতে রাতের ব্যাকআপ তৈরি করে।

এটি ব্যবহার করে তৈরি করা হয়েছে tar -czfএবং গন্তব্য tar.gz ফাইলের পথটি একটি মাউন্ট করা নেটওয়ার্ক ডিরেক্টরিতে রয়েছে। ফলস্বরূপ ফাইলটি প্রায় 1.2 গিগাবাইট বড়।

নেটওয়ার্কের গতি যুক্তিসঙ্গতভাবে দ্রুত (স্থানীয় ড্রাইভ থেকে স্থানীয় ড্রাইভে অনুলিপি M 28MB / সেকেন্ডে ঘটে)।

এখন আমি জাতীয় ড্রাইভে স্থানান্তরিত করার আগে তারের.gz ফাইলটি এনক্রিপ্ট করার জন্য সর্বজনীন-কী এনক্রিপশন ব্যবহার করতে চাই এবং এটি করার সর্বোত্তম উপায়টি কী তা জানতে চাই।

আমি কি প্রথমে স্থানীয়ভাবে ফাইলটি তৈরি করতে পারি, এটি এনক্রিপ্ট করব এবং তারপরে অনুলিপি করব? অথবা কোনও এনক্রিপশন প্রক্রিয়াটির মাধ্যমে টর আউটপুট "স্ট্রিম" করার কোনও উপায় আছে এবং সরাসরি নেটওয়ার্ক ড্রাইভে ফলাফল লিখতে পারে?

উত্তর:


34

your_dirএকটি এনক্রিপ্ট আর্কাইভ প্যাক করুন your_archive.tgz.gpg(প্রতিসামগ্রী এনক্রিপশন):

tar -cz your_dir | gpg -c -o your_archive.tgz.gpg

এটি আনপ্যাক করুন:

gpg -d your_archive.tgz.gpg | tar xz

প্রতিসম এনক্রিপশনের পরিবর্তে কীভাবে অসম্পৃক্ত ব্যবহার করতে হয় তার জন্য জিপিজির ডক্স দেখুন।


2
জিপিজি ব্যবহার করা ব্যবহারকারীর বাড়ির ধারকগুলিতে কী তৈরি করে এবং একটি পাসফ্রেজের অনুরোধ জানায়। মূলত, প্রক্রিয়াটি আমার স্বাদের জন্য খুব অস্বচ্ছ বলে মনে হচ্ছে ...
জোয়েল এল

করা উচিত tar xzকমান্ড দ্বিতীয় সেট হতে tar -xzপরিবর্তে?
কেনি এভিট

1
@ কেনেনিভিট: আপনি এটি সাথে বা ছাড়াই এটি ব্যবহার করতে পারেন-
ফ্লোরিয়ান ডিয়েশ

এটি জিপিজি-জিপ সহ এনক্রিপ্ট করা ফাইলগুলির জন্যও কাজ করে!
ট্রেফেক্স

2
প্রারম্ভিক স্থান ইতিমধ্যে ফাইল সংকোচন, তা মনে করি না zবিকল্প জোড়ে অনেক
feklee

12

নিম্নলিখিত প্রক্রিয়াটি প্রথমে লোকাল ডিস্কে ফাইলটি এনক্রিপ্ট করে এবং তারপরে নেটওয়ার্কের মাধ্যমে প্রেরণ করা যায় (বা প্রয়োজনে সঞ্চিত)


প্রথমে সরকারী এবং ব্যক্তিগত কী তৈরি করুন (শুধুমাত্র একবারে সম্পন্ন হয়েছে):

openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -out key-public.pem -outform PEM -pubout

তারপরে, প্রতিটি ব্যাকআপে:

  1. দীর্ঘ এলোমেলো পাসফ্রেজ তৈরি করুন, ফাইলে সংরক্ষণ করুন

    • echo -n "Tl4R6dnvWXiDeXr1LtpCNkyLG1" > key.txt
  2. পাসফেজ সহ ফাইল এনক্রিপ্ট করুন

    • openssl enc -aes-256-cbc -pass file:key.txt < UNENCRYPTED_FILE > encrypted.dat
  3. সর্বজনীন কী সহ পাসফ্রেজ এনক্রিপ্ট করুন

    • openssl rsautl -encrypt -pubin -inkey key-public.pem < key.txt > enc.key.txt

তারপরে এনক্রিপ্টড.ড্যাট এবং enc.key.txt সংরক্ষণ করুন desired


ডিক্রিপ্ট করতে:

  1. ব্যক্তিগত কী সহ এনক্রিপ্ট করা পাসফ্রেজ ডিক্রিপ্ট করুন

    • openssl rsautl -decrypt -inkey key.pem < enc.key.txt > key.txt
  2. ফাইল ডিক্রিপ্ট করুন

    • openssl enc -aes-256-cbc -d -pass file:key.txt < encrypted.dat > UNENCRYPTED_FILE

এটি ফ্লোরিয়ার অ্যাঞ্জারের চেয়ে অনেক বেশি দীর্ঘ, তবে আমি এটি ব্যবহার করার সিদ্ধান্ত নিয়েছি যাতে প্রক্রিয়াটি আরও ভালভাবে বুঝতে পারি এবং সার্ভার-নির্ভর জিপিজি কনফিগারেশন ভেরিয়েবলগুলির উপর নির্ভর করে না etc. ইত্যাদি, আমি কোনও কার্যকর জিপিজি ডকুমেন্টেশনও খুঁজে পাই না।


1
র্যান্ডম পাসফ্রেজ যেমন ওপেনসেল দিয়ে সহজেই তৈরি করা যায় openssl rand 32 -out key.txt
ওল্ফগ্যাং

@ ওল্ফগ্যাং - আমি আসলে পাইথন স্ক্রিপ্ট থেকে পাসফেজ তৈরি করছি (এটি ব্যাকআপ প্রক্রিয়া চালায়) তবে টিপটির জন্য ধন্যবাদ!
জোয়েল এল

2
এফওয়াইআই: কেন আপনি ওপেনসেল
ড্যানিয়েল হিলার

এই ফাইলটি 'enc.key.txt' ঠিক কী? আমি এমন একটি প্রক্রিয়া দেখছি যা আমার সার্ভার ফাইলগুলিকে ব্যাক আপ করে এবং কেবল সার্ভারে সঞ্চিত নয় এমন কী ব্যবহার করে ডিক্রিপ্ট করতে সক্ষম হতে চাই।
অ্যালেক্স স্টুয়ার্ট

6

আমি অসমমিতিক কী এনক্রিপশন দিয়ে এটি করি। তার মানে আমার একটি সার্বজনীন কী রয়েছে (যে আমি আমাকে এনক্রিপ্ট করা প্যাকেজগুলি প্রেরণ করতে চাইলে তার সাথে ভাগ করে নিতে পারি) যা আমাকে প্যাকেজটি এনক্রিপ্ট করতে দেয়। আমার একটি প্রাইভেট কী রয়েছে (যা আমি ভাগ করি না) যা আমাকে প্যাকেজটি ডিক্রিপ্ট করার অনুমতি দেয়।

আমার বর্তমান কমান্ড ডিরেক্টরিটি এনক্রিপ্ট করার আদেশগুলি: এনক্রিপ্ট করার জন্য -e, "প্রাপক" বা ব্যবহারের জন্য কী নির্দিষ্ট করতে হবে, আউটপুট ফাইলটি নির্দিষ্ট করতে -o।

$ tar -cvz . | gpg -e -r ABCD1234 -o backup.tgz.gpg

এবং বর্তমান ওয়ার্কিং ডিরেক্টরিতে ডিক্রিপ্ট করতে:

$ gpg -d backup.tgz.gpg | tar -xz

অথবা পরে আনপ্যাকিংয়ের জন্য কোনও মানক টিজিজেড ফাইলে ডিক্রিপ্ট করতে:

$ gpg -o backup.tgz -d backup.tgz.gpg

অবশ্যই, এটি কেবল তখনই কাজ করে যদি আমি ইতিমধ্যে একটি সরকারী-বেসরকারী কী জুড়ি উত্পন্ন করে জিপিজি দিয়ে ইনস্টল করেছি। আমার ক্ষেত্রে, আমি https://www.digitalocean.com/commune/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages-on-an-ubuntu এ ডিজিটাল মহাসাগরের গাইড ব্যবহার করে এটি করেছি -12-04-ভিপিএস । এনক্রিপশন কমান্ডের ABCD1234 আমার সিস্টেমে ইনস্টল করা সর্বজনীন কীগুলির একটি উল্লেখ করে। এই গাইডটিতে কীভাবে আপনার সার্বজনীন কী ভাগ করে নেওয়া এবং এনক্রিপ্ট করা ফাইলগুলি প্রেরণ এবং গ্রহণের জন্য অন্যের পাবলিক কীগুলি ইনস্টল করা যায় covers


0

GnuPG আমি এই প্রক্রিয়াটির জন্য যা ব্যবহার করেছি তা বেছে নিয়েছি এবং কারণ আপনি বলেছেন যে যেখানে অস্বচ্ছভাবে ডিক্রিপশন পদক্ষেপ নেওয়া হবে (আমি এই ব্যবহারের ক্ষেত্রে সম্মত) আমি সমস্যারও সেই দিকটিতে কাজ করেছি। প্রকল্পগুলির ট্র্যাভিস-সিআই লগগুলি নির্মাণের জন্য লগগুলি এবং আউটপুটটি অনুসরণ করার জন্য ট্র্যাভিস.আইএমএল ফাইলের জন্য বর্তমানে নকশাকৃত বৈশিষ্ট্যগুলি কী হিসাবে কাজ করে তা পরীক্ষা করুন। মূলত আপনার এই প্রকল্পের তিনটি স্ক্রিপ্টের প্রয়োজন হবে; কীজেন স্ক্রিপ্ট, ডিক্রিপশন সাহায্যকারী স্ক্রিপ্ট এবং নামযুক্ত পাইপ শ্রোতার স্ক্রিপ্ট। কীজেন স্ক্রিপ্ট এবং ডিক্রিপশন সহায়তা স্ক্রিপ্টটি সেই ডিভাইসে ব্যবহার করা উচিত যা ডিক্রিপশনটি প্রিফর্ম করবে এবং নামযুক্ত পাইপ শ্রোতার স্ক্রিপ্টটি ডিভাইস প্রিফর্মিং এনক্রিপশনটিতে থাকা উচিত।

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

নীচে উদাহরণস্বরূপ আদেশগুলি দেওয়া হয়েছে যা এনক্রিপশনের জন্য এবং ডিরেক্টরি সংক্ষেপণ + এনক্রিপশনের জন্য আপনার রাতের ব্যাকআপ স্ক্রিপ্টে স্থাপন করা যেতে পারে

echo "some messages text" > /path/to/named.pipe
## Message text is ASCII armor encrypted and appended to specified file when script was stated
echo "${HOME}/Documents" > /path/to/named.pipe
## Directories are compressed with tar and encrypted with output to time stamped file in bulk output directory
echo "${HOME}/.bash_history"  > /path/to/named.pipe

ডিক্রিপশন জন্য আপনি খুঁজে বার করো কিভাবে বিল্ড স্ক্রিপ্ট চাইবেন .travis-ci/script_decrypt.sh& .travis-ci/test_search_script_decrypt.shজন্য কিভাবে ডেটা এনক্রিপ্ট এর যোগ করা স্ট্রিং উদ্ধার করা হয় এবং কিভাবে বাল্ক ফাইল / ডিরেক্টরি পুনরুদ্ধার করা হয়েছে।

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

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