সর্বজনীন ssh কী ব্যবহার করে অস্থায়ী পাসওয়ার্ড এনক্রিপ্ট করুন


9

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

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

উত্তর:


8

আমি অবশেষে খুঁজে পেয়েছি কীভাবে একটি ওপেনএসএইচ পাবলিক কীটিকে কোনও ব্লগে পিইএম ফর্ম্যাটে রূপান্তর করতে হয় এবং আমার ব্যক্তিগত / পাবলিক কী ব্যবহার করে একটি স্ট্রিং সফলভাবে এনক্রিপ্ট এবং ডিক্রিপ্ট করতে সক্ষম হয়েছি।

এনক্রিপশন এবং ডিক্রিপশন সম্পাদন করতে আমি যে পদক্ষেপগুলি ব্যবহার করেছি তা আমি রূপরেখা দিয়েছি।

একটি স্ট্রিং এনক্রিপ্ট করতে:

# convert public key to PEM format
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8  > ~/.ssh/id_rsa.pub.pem

# encrypt string using public key
echo "String to Encrypt" \
   | openssl rsautl -pubin -inkey ~/.ssh/id_rsa.pub.pem -encrypt -pkcs \
   | openssl enc -base64 \
   > string.txt

একটি স্ট্রিং ডিক্রিপ্ট করতে (ফাইল থেকে):

openssl enc -base64 -d -in string.txt \
    | openssl rsautl -inkey ~/.ssh/id_rsa -decrypt

যেহেতু আমার লক্ষ্য পাসওয়ার্ডটি ইমেল করা, আমি কিছুটা স্বয়ংক্রিয়ভাবে চালানোর জন্য একটি চূড়ান্ত প্রাথমিক স্ক্রিপ্ট লিখেছি:

#!/bin/sh
if test "x${1}" == "x";then
   echo "Usage: ${0} <username>"
   exit 1
fi
SSHUSER=${1}
printf "Enter Password: "
read PASS1
echo ""
echo ""
ssh-keygen -f /home/${SSHUSER}/.ssh/id_rsa.pub -e -m PKCS8 \
    > /tmp/ssh-pubkey-${SSHUSER}.pem
echo 'cat << EOF |openssl enc -base64 -d |openssl rsautl -inkey ~/.ssh/id_rsa -decrypt'
echo "New Password: ${PASS1}" \
   | openssl rsautl -pubin -inkey /tmp/ssh-pubkey-${SSHUSER}.pem -encrypt -pkcs \
   | openssl enc -base64
echo "EOF"
echo ""
rm -f /tmp/ssh-pubkey-${SSHUSER}.pem

এর পরে আমি স্ক্রিপ্টটির আউটপুট ব্যবহারকারীকে ডিক্রিপ্ট করার জন্য একটি ই-মেইলে প্রেরণ করতে পারি।

সম্পূর্ণ স্ক্রিপ্টটি গিথুবে উপলভ্য: https://gist.github.com/3078682


4

এটি কেবল একটি আরএসএ কী হিসাবে এটি সম্ভব। ওপেনসেল ব্যবহার করুন:

openssl rsautl -encrypt -inkey alice.pub >message.encrypted

আমি এই প্রশ্নটি ইউনিক্স / লিনাক্স এসই-তে উপভোগ করেছি।

আমি অবশ্যই বলব যে পিজিপি এর জন্য আরও উপযুক্ত।


1
সমস্যাটি হ'ল এসএসএইচ পাবলিক কী এমন ফর্ম্যাটে নেই যা ওপেনএসএসএল স্বীকৃতি দেয়। আমার কীভাবে কীটি কীভাবে এমন কোনও কীতে রূপান্তর করতে হবে যা ওপেনএসএসএল-এর মতো একটি সরঞ্জামকিট ব্যবহার করতে পারে।
ডেভিড এম সিজডেক

1

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


0

সাধারণত একজন এসাইমেট্রিক কী দিয়ে 'বাল্ক এনক্রিপশন' করেন না। আপনি যে স্তরের বিশদটি নিয়ে কাজ করবেন না সেহেতু এটি গুরুত্বপূর্ণ নয়। আপনার জন্য কাজটি করতে একটি সরঞ্জামদণ্ড (ওপেনসেল একটি সূক্ষ্ম http://www.openssl.org/docs/apps/openssl.html ) ব্যবহার করুন। আপনি যা করতে চান তা হল নতুন অস্থায়ী পাসওয়ার্ড সহ একটি এনক্রিপ্ট করা বার্তা তৈরি করা এবং গ্রাহকের কী-জুটি প্রাপক হিসাবে নির্দিষ্ট করে। উদাহরণস্বরূপ এই পৃষ্ঠায় গুরূত্ব: http://www.openssl.org/docs/apps/smime.html

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