تشفير ملف مفتوح. تشفير الملفات بكلمة مرور باستخدام OpenSSL. أرشفة الدليل والتشفير

تشفير ملف واحد

# openssl aes-128-cbc -ملح -في ملف-out file.aes # تشفير ملف# openssl aes-128-cbc -d -salt -in file.aes ​​-out file # فك تشفير الملفبطبيعة الحال ، يمكن أن يكون الملف أيضًا عبارة عن أرشيف.

أرشفة الدليل والتشفير

# tar -cf - الدليل | openssl aes-128-cbc -salt -out directory.tar.aes # openssl aes-128-cbc -d -salt-in directory.tar.aes | القطران -x -f -

نفس الشيء ، فقط نوع الأرشيف tar.gz

# tar -zcf - الدليل | openssl aes-128-cbc -salt -out directory.tar.gz.aes # مجلد مضغوط وتشفير# openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | القطران -xz -f - # فك تشفير الأدلة وفك ضغط الأرشيف
  • يستخدم -k كلمة المروربعد، بعدما aes-128-cbc، حتى لا تتم مطالبتك بكلمة مرور ، ولكن ضع في اعتبارك أن هذا غير آمن للغاية.
  • يستخدم aes-256-cbcبدلا من aes-128-cbcللحصول على تشفير أكثر استقرارًا ، يزداد استهلاك المعالج.

تشفير GPG

لبديل PGPمرخص GPL(رخصة جنو المدنية العامة). GnuPG هي طريقة مشهورة جدًا لتشفير وتوقيع رسائل البريد الإلكتروني أو البيانات الأخرى ، كما يوفر gpg نظامًا متقدمًا لإدارة المفاتيح. هذه الأمثلة تغطي فقط تشفير الملفات. أبسط هو التشفير المتماثل. في هذه الحالة ، يتم تشفير الملف باستخدام كلمة مرور ، بحيث يمكن لأي شخص يعرف كلمة المرور فك تشفيرها ، ولا يلزم وجود مفاتيح. GPGلإلحاق الامتداد "* .gpg" باسم الملف المشفر. # gpg -c ملف # تشفير الملف بكلمة مرور# gpg file.gpg # فك تشفير ملف ( -oملف آخر)

التشفير باستخدام زوج من المفاتيح

لمزيد من المعلومات ، راجع وثائق GPG Quick Start و GPG / PGP Basics و gnupg. المفتاح الخاص والمفتاح العام ، أساس التشفير غير المتماثل. أشياء للذكرى:
  • يستخدم الآخرون مفتاحك العام لتشفير الملفات التي ، بصفتك مستلمًا ، يمكنك أنت فقط فك تشفيرها (ولا حتى الشخص الذي قام بتشفيرها).
  • يتم تشفير مفتاحك الخاص بكلمة مرور ويستخدم لفك تشفير الملفات المشفرة بمفتاحك العام. يجب الاحتفاظ بالمفتاح الخاص في مكان آمن. تذكر أنه في حالة فقد المفتاح الخاص أو كلمة المرور ، ستختفي الملفات المشفرة معها.
  • يمكن أن يحتوي ملف المفتاح على عدة مفاتيح.
تحتاج أولاً إلى إنشاء زوج مفاتيح. الإعدادات الافتراضية جيدة ، لكنك ستحتاج إلى إدخال اسم وعنوان بريد إلكتروني وتعليق (اختياري). يكون التعليق مفيدًا عند إنشاء أكثر من مفتاح لاسم معين / بريد إلكتروني. ستحتاج أيضًا إلى تحديد عبارة رئيسية (عبارة بالضبط وليس كلمة). # gpg - مفتاح جن # هذا قد يستغرق بعض الوقتيتم تخزين المفاتيح في ملفات ~ / .gnupg /في و ج: / المستندات والإعدادات /٪ USERNAME٪ / بيانات التطبيق / gnupg /... على نظام التشغيل Windows. ~ / .gnupg / pubring.gpg # يحتوي على المفتاح العام والمفاتيح المستوردة~ / .gnupg / secring.gpg # يمكن أن تحتوي على أكثر من مفتاح واحدبعض الخيارات شائعة الاستخدام:
  • -eتشفير البيانات
  • فك تشفير البيانات
  • -rتشفير NAME للمستلم NAME (أو "الاسم الكامل" أو " [بريد إلكتروني محمي]")
  • توليد مفتاح إخراج "أسكي مصفح"
  • -oالإخراج إلى ملف

التشفير للاستخدام الشخصي فقط

لا يتطلب تصدير / استيراد أي مفتاح ، لديك بالفعل. # gpg -e -r ملف "Your Name" # تشفير بالمفتاح العام# gpg -o file -d file.gpg # فك تشفير. الخيار المستخدم -o، وإلا انتقل إلى stdout

التشفير - فك التشفير باستخدام المفاتيح

أولاً ، تحتاج إلى تصدير مفتاحك العام بحيث يمكن استخدامه لفك تشفير البيانات. يجب عليك أيضًا استيراد المفتاح العام من Alice لتشفير الملفات لها. يمكن تمرير المفاتيح في ملف أسكي عادي. على سبيل المثال ، تقوم Alice بتصدير مفتاح ، وتقوم باستيراده لنفسك ، والآن يمكنك تشفير الملفات لها ويمكنها فقط فك تشفيرها. # gpg -a -o alicekey.asc - تصدير "Alice" # ستقوم Alice بتصدير المفتاح إلى ملف ascii.# gpg - إرسال مفاتيح - keyserver subkeys.pgp.net KEYID # أليس تضع المفتاح على الخادم.# gpg - استيراد alicekey.asc # أنت تستورد المفتاح بنفسك.# gpg --search-keys --keyserver subkeys.pgp.net "Alice" # أو قم باستلامه على الخادم.# gpg -e -r ملف "أليس" # تشفير ملف أليس.# gpg -d file.gpg -o ملف # فك تشفير الملف المشفر بواسطة أليس من أجلك.

ادارة المفاتيح

# gpg - قائمة المفاتيح # قائمة المفاتيح العامة مع KEYIDS KEYID يتبع "/" على سبيل المثال: pub 1024D / D12B77CE - KEYID هو D12B77CE# gpg --gen-revoke "اسمك" # إنشاء CRL (قائمة إبطال الشهادات)# gpg - قائمة-مفاتيح-سرية # قائمة المفاتيح الخاصة# gpg --delete-keys NAME # إزالة المفتاح العمومي من "سلسلة المفاتيح" المحلية# gpg - حذف اسم المفتاح السري # إزالة المفتاح الخاص من "سلسلة المفاتيح" المحلية# gpg - مفتاح بصمة الإصبع # إظهار بصمة مفتاح# gpg - مفتاح تحرير KEYID # تحرير مفتاح (على سبيل المثال ، التوقيع أو إضافة / إزالة البريد الإلكتروني)

هناك الكثير من المواقف التي تحتاج فيها إلى تشفير ملف أو مجلد معين. على سبيل المثال ، إذا تم نقل البيانات عبر قنوات مفتوحة أو تخزينها على وسيط خارجي. يستخدم الكثير (بما فيهم أنا) truecrypt ، لكن الغرض الأساسي من هذا البرنامج هو العمل مع الأقسام المشفرة ، لذا فهي ليست جيدة جدًا في هذه الحالة.

لمثل هذه المهام ، يعد OpenSSL مناسبًا تمامًا - وهو حل موثوق عبر الأنظمة الأساسية. يدعم OpenSSL خوارزميات تشفير مختلفة ، بالإضافة إلى تثبيته افتراضيًا على العديد من أنظمة التشغيل ، والتثبيت على أنظمة أخرى سهل.

تحت habrakat - أساسيات استخدام التشفير المتماثل وغير المتماثل في OpenSSL ، بالإضافة إلى بعض البرامج النصية التي تبسط التشفير غير المتماثل بمفتاح لمرة واحدة.

إن أبسط طريقة لحماية بياناتك باستخدام OpenSSL هي التشفير المتماثل. تقوم الأوامر التالية بتشفير وفك تشفير ملف documents.zip باستخدام AES بمفتاح 256 بت:

افتح sl enc -aes-256-cbc -salt-in documents.zip -out documents.enc
opensl enc -d -aes-256-cbc-in documents.enc -out documents.zip

قد تكون مشكلة هذه الأوامر أنها تتطلب كلمة مرور. هناك حالات يكون فيها هذا غير مرغوب فيه. على سبيل المثال ، النسخ الاحتياطي / التشفير التلقائي للبيانات وفقًا لجدول زمني ، أو إذا تم تشفير البيانات من قبل شخص وفك تشفيرها بواسطة شخص آخر.

تم اختراع تشفير المفتاح العام لمثل هذه الحالات فقط. بشكل عام ، سوف تحتاج إلى إنشاء مفاتيح عامة وخاصة. سينشئ الأمر الأول المفتاح الخاص private.pem ، بينما يُنشئ الأمر الثاني المفتاح العام public.pem:

Opensl genrsa -out private.pem -aes256 2048
opensl rsa -in private.pem -pubout -out public.pem

نتيجة لذلك ، تحصل على زوج مفاتيح RSA 2048 بت. لسوء الحظ ، في نظام RSA ، يكون حجم البيانات المشفرة مقيدًا بحجم المفتاح ، لذلك لا يمكنك تشفير أكثر من 2 كيلوبايت من البيانات. هناك طريقة للتغلب على هذا - يتم تشفير المعلومات أولاً باستخدام خوارزمية متماثلة (مثل تلك المستخدمة أعلاه) باستخدام مفتاح لمرة واحدة. يتم بعد ذلك تشفير هذا المفتاح الذي يستخدم لمرة واحدة باستخدام المفتاح العام. أثناء فك التشفير ، يتم فك تشفير المفتاح لمرة واحدة خاص. تمت كتابة المزيد عن هذا بشكل جيد للغاية.

سيساعد البرنامج النصي التالي على أتمتة التشفير ، حيث ستتلقى عند إخراجها مفتاحًا وبيانات لمرة واحدة (encrypt.sh) في شكل مشفر:

FILENAME = "$ 1"
PUBLICKEY = "2 دولار"
SESSIONKEY = "3 دولارات"
النتيجة = "4 دولارات"

# إنشاء مفتاح متماثل عشوائي
التمرير = 30
إذا [-c / dev / urandom] ؛ من ثم
KEY = `head -c 30 / dev / urandom | opensl enc -base64`
آخر
KEY = `openssl rand -base64 30`
فاي
تصدير مفتاح

# تشفير المفتاح المتماثل باستخدام المفتاح العمومي
openssl rsautl -encrypt -inkey "$ PUBLICKEY" -out "$ SESSIONKEY" -pubin<مفتاح $
EOF

# تشفير الملف
opensl enc -aes-256-cbc -pass env: KEY -in "$ FILENAME" -out "$ RESULT"

يستخدم الأمر التالي المفتاح العام public.pem لتشفير ملف documents.zip. سيُنشئ جلسة مفتاح مشفرة لمرة واحدة ووثائق بيانات مشفرة.

./encrypt.sh documents.zip public.pem session.key documents.enc

برنامج فك التشفير (decrypt.sh):

PRIVATEKEY = "$ 1"
SESSIONKEY = "2 دولار"
مشفّر = "3 دولارات"
مرفوض = "4 دولارات"

# فك تشفير المفتاح المتماثل باستخدام المفتاح الخاص
KEY = "openssl rsautl -decrypt -inkey" $ PRIVATEKEY "-in" $ SESSIONKEY "`
تصدير مفتاح

# فك تشفير الملف
openssl enc -aes-256-cbc -d -pass env: KEY -in "$ ENCRYPTED" -out "$ DECRYPTED"

يستخدم أمر فك التشفير المفتاح الخاص private.pem والمفتاح لمرة واحدة session.key لفك تشفير ملف documents.enc. سيقوم بإنشاء ملف documents.zip:

./decrypt.sh private.pem session.key documents.enc documents.zip

كما ترى ، يمكن أن يكون تشفير المفتاح العام بسيطًا مثل التشفير المتماثل. ولكن هناك طريقة أسهل. دفعتني مدونة SbF₅ لكتابة هذا المنشور. كتب مؤلفه (بلا شك أكثر تعقيدًا في bash مني) نصًا يقوم بأرشفة مجلد ، ويقوم بتشفيره بمفتاح عام وينشئ نصًا آخر يحتوي على كل ما تحتاجه: مفتاح لمرة واحدة وبيانات وأوامر فك التشفير الفعلية. بالإضافة إلى ذلك ، يمكن للبرنامج النصي إنشاء زوج مفاتيح RSA لك:

./encrypt-file.sh -keys public.pem private.pem
./encrypt-file.sh folder public.pem> decrypt-folder.sh
chmod + x فك تشفير المجلد
./decrypt-folder.sh private.pem> folder.tar

في هذا المثال ، أنشأنا أولاً زوج مفاتيح. بعد ذلك ، تم تشفير مجلد المجلد في البرنامج النصي decrypt-folder.sh ثم فك تشفيره في folder.tar Archive. من العيوب المحتملة لهذه الطريقة أن البيانات الموجودة في فك تشفير المجلد يتم تخزينها بتنسيق BASE64 ، وبالتالي يزيد حجمها.

محدثانتقل إلى مدونة أمن المعلومات.

هناك الكثير من المواقف التي تحتاج فيها إلى تشفير ملف أو مجلد معين. على سبيل المثال ، إذا تم نقل البيانات عبر قنوات مفتوحة أو تخزينها على وسيط خارجي. يستخدم الكثير (بما فيهم أنا) truecrypt ، لكن الغرض الأساسي من هذا البرنامج هو العمل مع الأقسام المشفرة ، لذا فهي ليست جيدة جدًا في هذه الحالة.

لمثل هذه المهام ، يعد OpenSSL مناسبًا تمامًا - وهو حل موثوق عبر الأنظمة الأساسية. يدعم OpenSSL خوارزميات تشفير مختلفة ، بالإضافة إلى تثبيته افتراضيًا على العديد من أنظمة التشغيل ، والتثبيت على أنظمة أخرى سهل.

تحت habrakat - أساسيات استخدام التشفير المتماثل وغير المتماثل في OpenSSL ، بالإضافة إلى بعض البرامج النصية التي تبسط التشفير غير المتماثل بمفتاح لمرة واحدة.

إن أبسط طريقة لحماية بياناتك باستخدام OpenSSL هي التشفير المتماثل. تقوم الأوامر التالية بتشفير وفك تشفير ملف documents.zip باستخدام AES بمفتاح 256 بت:

افتح sl enc -aes-256-cbc -salt-in documents.zip -out documents.enc
opensl enc -d -aes-256-cbc-in documents.enc -out documents.zip

قد تكون مشكلة هذه الأوامر أنها تتطلب كلمة مرور. هناك حالات يكون فيها هذا غير مرغوب فيه. على سبيل المثال ، النسخ الاحتياطي / التشفير التلقائي للبيانات وفقًا لجدول زمني ، أو إذا تم تشفير البيانات من قبل شخص وفك تشفيرها بواسطة شخص آخر.

تم اختراع تشفير المفتاح العام لمثل هذه الحالات فقط. بشكل عام ، سوف تحتاج إلى إنشاء مفاتيح عامة وخاصة. سينشئ الأمر الأول المفتاح الخاص private.pem ، بينما يُنشئ الأمر الثاني المفتاح العام public.pem:

Opensl genrsa -out private.pem -aes256 2048
opensl rsa -in private.pem -pubout -out public.pem

نتيجة لذلك ، تحصل على زوج مفاتيح RSA 2048 بت. لسوء الحظ ، في نظام RSA ، يكون حجم البيانات المشفرة مقيدًا بحجم المفتاح ، لذلك لا يمكنك تشفير أكثر من 2 كيلوبايت من البيانات. هناك طريقة للتغلب على هذا - يتم تشفير المعلومات أولاً باستخدام خوارزمية متماثلة (مثل تلك المستخدمة أعلاه) باستخدام مفتاح لمرة واحدة. يتم بعد ذلك تشفير هذا المفتاح الذي يستخدم لمرة واحدة باستخدام المفتاح العام. أثناء فك التشفير ، يتم فك تشفير المفتاح لمرة واحدة خاص. لقد تمت كتابة المزيد من التفاصيل حول هذا الأمر بشكل جيد للغاية في المقالة التي تناولت حبري.

سيساعد البرنامج النصي التالي على أتمتة التشفير ، حيث ستتلقى عند إخراجها مفتاحًا وبيانات لمرة واحدة (encrypt.sh) في شكل مشفر:

FILENAME = "$ 1"
PUBLICKEY = "2 دولار"
SESSIONKEY = "3 دولارات"
النتيجة = "4 دولارات"

# إنشاء مفتاح متماثل عشوائي
التمرير = 30
إذا [-c / dev / urandom] ؛ من ثم
KEY = `head -c 30 / dev / urandom | opensl enc -base64`
آخر
KEY = `openssl rand -base64 30`
فاي
تصدير مفتاح

# تشفير المفتاح المتماثل باستخدام المفتاح العمومي
openssl rsautl -encrypt -inkey "$ PUBLICKEY" -out "$ SESSIONKEY" -pubin<مفتاح $
EOF

# تشفير الملف
opensl enc -aes-256-cbc -pass env: KEY -in "$ FILENAME" -out "$ RESULT"

يستخدم الأمر التالي المفتاح العام public.pem لتشفير ملف documents.zip. سيُنشئ جلسة مفتاح مشفرة لمرة واحدة ووثائق بيانات مشفرة.

./encrypt.sh documents.zip public.pem session.key documents.enc

برنامج فك التشفير (decrypt.sh):

PRIVATEKEY = "$ 1"
SESSIONKEY = "2 دولار"
مشفّر = "3 دولارات"
مرفوض = "4 دولارات"

# فك تشفير المفتاح المتماثل باستخدام المفتاح الخاص
KEY = "openssl rsautl -decrypt -inkey" $ PRIVATEKEY "-in" $ SESSIONKEY "`
تصدير مفتاح

# فك تشفير الملف
openssl enc -aes-256-cbc -d -pass env: KEY -in "$ ENCRYPTED" -out "$ DECRYPTED"

يستخدم أمر فك التشفير المفتاح الخاص private.pem والمفتاح لمرة واحدة session.key لفك تشفير ملف documents.enc. سيقوم بإنشاء ملف documents.zip:

./decrypt.sh private.pem session.key documents.enc documents.zip

كما ترى ، يمكن أن يكون تشفير المفتاح العام بسيطًا مثل التشفير المتماثل. ولكن هناك طريقة أسهل. دفعتني مدونة SbF₅ لكتابة هذا المنشور. كتب مؤلفه (بلا شك أكثر تعقيدًا في bash مني) نصًا يقوم بأرشفة مجلد ، ويقوم بتشفيره بمفتاح عام وينشئ نصًا آخر يحتوي على كل ما تحتاجه: مفتاح لمرة واحدة وبيانات وأوامر فك التشفير الفعلية. بالإضافة إلى ذلك ، يمكن للبرنامج النصي إنشاء زوج مفاتيح RSA لك:

./encrypt-file.sh -keys public.pem private.pem
./encrypt-file.sh folder public.pem> decrypt-folder.sh
chmod + x فك تشفير المجلد
./decrypt-folder.sh private.pem> folder.tar

في هذا المثال ، أنشأنا أولاً زوج مفاتيح. بعد ذلك ، تم تشفير مجلد المجلد في البرنامج النصي decrypt-folder.sh ثم فك تشفيره في folder.tar Archive. من العيوب المحتملة لهذه الطريقة أن البيانات الموجودة في فك تشفير المجلد يتم تخزينها بتنسيق BASE64 ، وبالتالي يزيد حجمها.

محدثانتقل إلى مدونة أمن المعلومات.

OpenSSLهي مجموعة قوية من الأدوات التي يمكن استخدامها تشفير الملفات والرسائل.

إذا كنت تريد استخدام نفس كلمة المرور الخاصة بـ تشفير نص عاديولاحقا فك التشفير، فأنت بحاجة إلى استخدام خوارزمية التشفير المتماثل.

من هذه المقالة سوف تتعلم كيف تشفير وفك تشفير الملفات والرسائلبكلمة مرور من سطر الأوامر على Linux باستخدام OpenSSL.

الكيفية: تشفير الملف

$ openssl enc -aes-256-cbc-الملح -in file.txt-خارج file.txt.enc

256bit AES عبارة عن خوارزمية تشفير تستخدمها حكومة الولايات المتحدة لتشفير المعلومات في أكثر مستوياتها سرية.

خيار -ملح(ملح) يجب استخدامه دائماإذا تم إنشاء المفتاح السري من كلمة مرور.

بدون استخدام الخيار -ملح، من الممكن تنفيذ هجوم قاموس فعال للغاية ، مما سيؤدي إلى الكشف عن البيانات المشفرة. والسبب في ذلك هو أنه بدون إضافة "الملح" ، ستنشئ نفس كلمة المرور دائمًا نفس المفتاح السري.

عند استخدام الملح ، يتم حجز أول 8 بايت للملح. يتم إنشاؤه عشوائيًا عند تشفير الملف وقراءته من الملف المشفر أثناء فك التشفير.

الكيفية: فك تشفير الملف

$ openssl enc -aes-256-cbc -في file.txt.enc-خارج file.txt

تشفير Base64 وفك تشفيره

يعد ترميز Base64 طريقة قياسية لتحويل المعلومات الثنائية ذات 8 بتات إلى مجموعة فرعية محدودة من أحرف ASCII للنقل الآمن عبر أنظمة البريد الإلكتروني والأنظمة الأخرى التي لا تدعم تنسيق 8 بت.

بشكل افتراضي ، يتم إنشاء الملف المشفر بتنسيق ثنائي. إذا كنت سترسله عبر البريد الإلكتروني ، IRC ، وما إلى ذلك ، فيجب عليك حفظه بتشفير Base64. لتشفير ملف Base64 المشفر ، أضف الخيار :

$ openssl enc -aes-256-cbc-ملح -في file.txt-خارج file.txt.enc

خيارات وصف
يخبر OpenSSL أن البيانات المشفرة هي Base64 مشفرة.

أيضا ، الخيار ، يجب تحديدها أثناء فك التشفير:

$ openssl enc -aes-256-cbc -في file.txt.enc-خارج file.txt

تشفير / فك تشفير بدون مطالبة بكلمة مرور

نظرًا لأن كلمة المرور أصبحت مرئية ، يجب استخدام هذه الطريقة فقط في المكان السلامة ليست مهمة.

بشكل افتراضي ، يُطلب من المستخدم إدخال كلمة مرور بشكل تفاعلي.

عند كتابة نص BASH ، قد ترغب في الترتيب لإدخال كلمة المرور بشكل غير تفاعلي باستخدام الخيار .

تم اختراع تشفير المفتاح العام لمثل هذه الحالات فقط.

قم بتشفير الملف باستخدام كلمة المرور المقدمة:

$ openssl enc -aes-256-cbc-الملح -in file.txt -out file.txt.enc -k باس

فك تشفير الملف باستخدام كلمة المرور المقدمة:

$ openssl enc -aes-256-cbc -d -in file.txt.enc -out file.txt -k باس

أدوات مثل OpenSSH و OpenSSL لا تحتاج إلى مقدمة. إنهم الأصدقاء الأبديون لأي مسؤول نظام والعديد من المستخدمين المتقدمين. ومع ذلك ، لا يعرف الجميع عن قوتهم الحقيقية وقدراتهم المتراكمة على مدى سنوات من التطور. اليوم سوف تكتشف الكثير من الطرق الشيقة لاستخدام هذه البرامج.

OpenSSH

استبدال Telnet المتسرب ، لا يزال OpenSSH هو نظام الإدارة عن بُعد رقم 1 للأمان وسهولة الاستخدام. الجميع قادر على فهمها ، حتى أباريق الشاي المطلية بالكروم ، لكن الغالبية العظمى من المستخدمين يستخدمون الحد الأدنى من قدراتها. دعنا نتخطى القصص المتعلقة بالمفاتيح ، وإعادة توجيه المنافذ ، والوكيل وغيرها من الحيل المفيدة ، ولكن المعروفة ، ونفكر في طرق مثيرة للاهتمام وليست شائعة جدًا لاستخدام هذه الأداة.

معلومات

يمكن عرض قائمة كاملة بأوامر OpenSSL باستخدام المعلمات التالية: أوامر list-standart-command و list-message-abstract-commands وأوامر list-cipher.

الحيلة الأولى هي اتصالات متعددة. OpenSSH قادر على التعامل مع العديد من الاتصالات المتزامنة لنفس الجهاز. عادةً ما يقوم المستخدمون فقط بتشغيل أحد الأوامر والانتظار حتى يكتمل لتشغيل الأمر التالي. لحسن الحظ ، يمكن التحايل على هذه المشكلة بسهولة عن طريق تقسيم اتصال واحد إلى عدة جلسات. ما عليك سوى إضافة الأسطر التالية إلى تكوين ssh (~ / .ssh / config):

ControlMaster auto ControlPath ~ / .ssh / mux_٪ h_٪ p_٪ r

يمكنك إنشاء العديد من الاتصالات إلى نفس الخادم كما تراه مناسبًا ، دون الحاجة إلى قضاء الوقت في إعادة المصادقة.


الحيلة الثانية هي إنشاء وكلاء للوصلات. لنفترض أنه لا يمكنك إنشاء اتصال بخادم SSH مباشرة ، ولكن يمكنك استخدام مضيف آخر لهذا ، والذي لديك أيضًا وصول SSH إليه. أضف الأسطر التالية إلى التكوين الخاص بك:

ForwardAgent نعم المضيف المضيف HostName host.com ProxyCommand ssh proxy-host.com \ netcat -q 600٪ h٪ p

سينشئ الأمر ssh host اتصالاً بخادم host.com من خلال خادم proxy-host.com.

الحيلة الثالثة هي تجاوز عزل HTTP. لا تقوم العديد من المؤسسات بقطع حركة المرور التي لا تحبها فحسب ، بل تجبر المستخدمين أيضًا على الاتصال بالإنترنت فقط باستخدام بروتوكول HTTP. يتم التحايل على هذا الظلم بسهولة باستخدام المفتاح (www.agroman.net/corkscrew/) ، والذي يمكنه نقل حركة مرور SSH عبر HTTP. ما عليك سوى تثبيته على جهازك وإضافة الأسطر التالية إلى التكوين (حيث proxy.com و 80 هما عنوان ومنفذ وكيل HTTP الخارجي):

المضيف * مفتاح ProxyCommand proxy.com 80٪ h٪ p

ستمر جميع الاتصالات الآن عبر وكيل HTTP المحدد.

الخدعة الرابعة - اختبار النطاق الترددي للشبكة. لاختبار سرعة الاتصال ، ليس من الضروري تثبيت برنامج متخصص ، تكفي الأداة المساعدة الكهروضوئية و SSH القديم الجيد:

sudo apt-get install pv $ yes | الكهروضوئية | ssh host.com "cat> / dev / null"

الخدعة الخامسة - تحليل حركة مرور الشبكة عن بعد. يحتوي أي نظام من أنظمة UNIX تقريبًا على متشمم شبكة tcpdump ، ولكن قراءة السجلات الخاصة به عملية مملة للغاية. تساعد ميزات OpenSSH في تبسيط تحليل حركة المرور:

$ ssh [بريد إلكتروني محمي] tcpdump -w - "المنفذ! 22" \ | wireshark -k -i -

ستظهر الآن كل حركة المرور التي تمر عبر host.com في نافذة رسومات wireshark على جهازك.

الحيلة السادسة - نقل الملفات بسرعات منخفضة. في بعض الأحيان يكون من الضروري نقل عدد كبير من الملفات إلى جهاز بعيد ، ولكن قم بذلك حتى لا تتداخل العملية مع الشبكة. في هذه الحالة ، يمكنك استخدام أداة cstream:

sudo apt-get install cstream $ tar -cj / backup | cstream -t 512 كيلو | مضيف \ ssh "tar -xj -C / backup"

الخدعة السابعة - افتح جلسة SSH دائمًا. يتعين على مستخدمي الكمبيوتر المحمول ، الذين قد لا يكون اتصالهم بالشبكة دائمًا ، إعادة تشغيل عميل SSH في كل مرة تظهر فيها الشبكة ، وإيقافها عند فقد الاتصال. يمكن تجنب ذلك باستخدام أداة autossh ، والتي ستحافظ على وهم الاتصال الدائم بالخادم ، واستعادة الاتصال عندما تكون الشبكة متاحة:

$ sudo apt-get install autossh $ autossh -M50000 -t server.example.com \ "screen -raAd mysession"

الحيلة رقم ثمانية - تشغيل أمر على خوادم متعددة في نفس الوقت. التعليقات غير ضرورية:

صدى دولار "الجهوزية" | تبول "ssh host1" "ssh host2" \ "ssh host3"

الحيلة رقم تسعة - مقارنة الملفات البعيدة. غالبًا ما يكون مطلوبًا مقارنة الإصدارات المحلية والبعيدة للتكوين ، ولكن نسخ الملفات ذهابًا وإيابًا أمر غير مريح ويستغرق وقتًا طويلاً. في هذه الحالة ، يمكنك استخدام الأمر التالي:

$ ssh [بريد إلكتروني محمي]قطة / مسار / إلى / بعيد / ملف | \ فرق / مسار / إلى / محلي / ملف -

يمكن فعل الشيء نفسه لملفين موجودين على خوادم مختلفة:

فرق $<(ssh host1 cat /etc/apt/sources.list) \ <(ssh host2 cat /etc/apt/sources.list)

وحدة المعالجة المركزية 0: RNG AES

النتائج المعيارية لأدوات التشفير المضمنة في وحدة المعالجة المركزية لمنصة VIA Eden (تعليمات المعالج للعمل مع خوارزمية التشفير المتماثل للكتلة AES):

٪ سرعة openssl - انقضاء - evp aes-256-cbc نوع 16 بايت 64 بايت 256 بايت 1024 بايت 8192 بايت aes-256-cbc 21780.33k79591.78k 198578.08k 317102.05k 383371.05k

الحيلة رقم 10 - عرض السجلات من أجهزة متعددة في نفس الوقت. باستخدام multitail و SSH ، يمكنك بسهولة عرض السجلات من خادمين في نفس الوقت:

$ sudo apt-get install multitail $ multitail -l "ssh host1" tail -f \ /var/log/apache2/error.log "" -l "ssh host2 \" tail -f / var / log / apache2 / error. سجل ""

الحيلة رقم 11 - نسخ الملفات من جهاز بعيد إلى آخر عبر الجهاز المحلي. إذا تعذر على جهازين عن بُعد إنشاء اتصال مع بعضهما البعض ، فيمكن نقل الملفات بينهما باستخدام جهاز الكمبيوتر الخاص بك كرابط وسيط:

$ ssh [بريد إلكتروني محمي]"cd / directory && tar -cf -." | \ ssh [بريد إلكتروني محمي]"cd / directory && tar -xf -"

الخدعة رقم 12 - نسخ إخراج أمر بعيد إلى الحافظة. غالبًا ما يكون من الضروري نسخ إخراج أمر بعيد إلى الحافظة من أجل لصقه في بريد إلكتروني ، أو مشاركة في المنتدى ، وما إلى ذلك. أسهل طريقة للقيام بذلك هي استخدام الأداة المساعدة xclip:

$ ssh [بريد إلكتروني محمي]القط / file.txt | xclip

رقم الخدعة 13 - مزامنة الوقت مع SSH. إذا لم يكن للجهاز حق الوصول إلى خادم NTP أو لم يتم تثبيت عميل NTP عليه ، فيمكنك مزامنة الوقت بين الأجهزة على النحو التالي:

# تاريخ - ضبط = "$ (ssh [بريد إلكتروني محمي]تاريخ) "

الحيلة رقم 14 - تثبيت الحزم من آلة بعيدة إلى آلة محلية. غالبًا ما يكون من الضروري مزامنة جهازين بحيث يكون لديهم نفس مجموعة الحزم المثبتة. من الصعب القيام بذلك باستخدام الطرق القياسية ، ولكن استخدام SSH سهل مثل تقشير الكمثرى:

# ssh remotehost "dpkg --get-selections" | \ dpkg - تحديدات المجموعة && تثبيت dselect

الخدعة رقم 15 - لقطة شاشة عن بعد. من السهل جدًا الحصول على صورة لخادم X من جهاز بعيد باستخدام حزمة رسومات ImageMagick القياسية:

# صه [بريد إلكتروني محمي]"DISPLAY =: 0.0 استيراد -Window \ root -format png -" | عرض تنسيق png -

الحيلة رقم 16 - تسريع نقل البيانات. إذا كانت الأجهزة التي تم إنشاء الاتصال بها داخل شبكة آمنة معروفة (على سبيل المثال ، مكتب أو منزل) ، فيمكن تسريع نقل بيانات SSH بشكل طفيف باستخدام خوارزمية تشفير أقل قوة. للقيام بذلك ، أضف الأسطر التالية إلى ملف التكوين:

استضافة host.com Ciphers arcfour256 MACs [بريد إلكتروني محمي]

الحيلة رقم 17 - إخراج الصوت من جهاز بعيد إلى جهاز محلي. في بعض الأحيان تريد الحصول على صوت مع صورة سطح المكتب للجهاز البعيد. يتم ذلك مع تافهة dd:

$ dd if = / dev / dsp | ssh -c arcfour -C \ [بريد إلكتروني محمي] dd = / dev / dsp

الحيلة رقم 18 - تشغيل برنامج نصي محلي على جهاز بعيد. غالبًا ما تحتاج إلى تشغيل برنامج نصي على جهاز بعيد ، ولكن نسخه ليس ضروريًا على الإطلاق ، ما عليك سوى تشغيل الأمر البسيط التالي:

$ ssh -T [بريد إلكتروني محمي] < script.sh

OpenSSL

OpenSSL هو نظام لحماية البيانات وإصدار الشهادات تم تطويره استجابة لإنشاء طبقة مآخذ التوصيل الآمنة (SSL) بواسطة Netscape. خلافًا للاعتقاد الشائع ، فإن OpenSSL ليس أداة على الإطلاق لتنفيذ بروتوكول SSL ويمكنه أداء مجموعة متنوعة من الوظائف ، بما في ذلك إدارة المفاتيح والشهادات ، وحساب التجزئة ، وما إلى ذلك. فيما يلي قائمة غير كاملة بإمكانيات آلة حصاد التشفير. :

  • إنشاء وإدارة مفاتيح RSA و DSA (أوامر rsa و dsa و dsaparam) ؛
  • إنشاء شهادات بتنسيق x509 ، وإنشاء طلبات للحصول على الشهادات ، والاستعادة (الأوامر x509 ، req ، التحقق ، ca ، crl ، pks12 ، pks7) ؛
  • تشفير البيانات المتماثل وغير المتماثل (أوامر enc ، rsautl) ؛
  • حساب التجزئة (الأمر dgst) ؛
  • العمل مع S / MIME (الأمر s / mime).

كما يمكن استخدام OpenSSL للتحقق من خوادم وعملاء SSL باستخدام أوامر خاصة العميل / العملاءالخادم واختبار سرعة الخوارزميات المختلفة (سرعة الأمر).

لقد كتبنا أكثر من مرة عن العمل مع حزمة OpenSSL ، لذلك لن نفكر في الأمثلة القياسية لاستخدامها ، مثل إنشاء تجزئة وشهادات ، ولكننا سننتقل فورًا إلى حيل أكثر جدية.


الوقت قيم

تتمثل إحدى ميزات OpenSSL المثيرة للاهتمام في قدرتها على قياس الخوارزميات المستخدمة وسرعة إنشاء اتصال SSL. الأمر القياسي s_time مخصص لهذا الغرض. لتقدير سرعة إنشاء اتصال SSL ، تحتاج إلى تطبيقه على الأمر openssl:

$ openssl s_time -connect gmail.com:443 \ -www /test.html -103 اتصالات جديدة في 0.75 ثانية ؛ 137.33 اتصال / مستخدم ثانية ، قراءة البايت 42436103 اتصالات في 31 ثانية حقيقية ، 412 بايت قراءة لكل اتصال

يمكن فعل الشيء نفسه باستخدام أقوى الخوارزميات:

$ openssl s_time -ssl3 -cipher HIGH \ -connect gmail.com:443 -www / -new 99 اتصالًا في 0.73 ثانية ؛ 135.62 اتصال / ثانية للمستخدم ، قراءة البايت 4078899 اتصالاً في 31 ثانية حقيقية ، 412 بايت قراءة لكل اتصال

يسمح لك هذان الأمران بتحديد الحد الأقصى لسرعة نقل خادم SSL. لكن الطريقة الأكثر إثارة للاهتمام هي اختبار جميع الخوارزميات المدعومة. للقيام بذلك ، سيتعين علينا اللجوء إلى البرمجة النصية:

IFS = ":" لـ c بالدولار (openssl ciphers -ssl3 RSA) ؛ do echo $ c openssl s_time -connect host: 443 -www /-new \ -time 10 -cipher $ c 2> & 1 | صدى grep بايت القيام به

يتيح لك هذا الأمر قياس سرعة إنشاء اتصال SSL باستخدام خوارزميات تشفير مختلفة ، والتي يمكن استخدامها ، على سبيل المثال ، لضبط خادم SSL. إذا لم يكن لديك بالفعل خادم SSL ، فمن السهل محاكاته باستخدام OpenSSL نفسه. قم بتشغيل خادم OpenSSL على جهاز الخادم: