আমি অবশেষে খুঁজে পেয়েছি কীভাবে একটি ওপেনএসএইচ পাবলিক কীটিকে কোনও ব্লগে পিইএম ফর্ম্যাটে রূপান্তর করতে হয় এবং আমার ব্যক্তিগত / পাবলিক কী ব্যবহার করে একটি স্ট্রিং সফলভাবে এনক্রিপ্ট এবং ডিক্রিপ্ট করতে সক্ষম হয়েছি।
এনক্রিপশন এবং ডিক্রিপশন সম্পাদন করতে আমি যে পদক্ষেপগুলি ব্যবহার করেছি তা আমি রূপরেখা দিয়েছি।
একটি স্ট্রিং এনক্রিপ্ট করতে:
# 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