অ্যামাজন এডাব্লুএস থেকে কীভাবে পাবলিক কী ডাউনলোড করবেন?


25

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

বাড়িতে, আমি authorized_keysআমার এএমআই ইনস্ট্যান্সের সাথে কীপায়ার পি 2 এর সর্বজনীন কী যুক্ত করতে চাই (যা আমি বর্তমানে কেবল বাড়ি থেকে অ্যাক্সেস করতে পারি)। যাইহোক, আমি পি 2 এর সর্বজনীন কীটি আমার সাথে আনতে ভুলে গিয়েছিলাম, তাই অ্যামাজন থেকে এই পাবলিক কীটি কোনওভাবে রফতানি করা সম্ভব?

উত্তর:


6

দুর্দান্ত ধাঁধা, ধন্যবাদ! এখানে একটি উত্তর:

  1. একটি নতুন, অস্থায়ী EBS বুট t1.micro উদাহরণ এ শুরু করুন, কীপায়ের পি 2 উল্লেখ করে। এমন একটি উপলভ্যতা অঞ্চল নির্দিষ্ট করুন যেখানে আপনার ইতিমধ্যে অন্য একটি দৃষ্টান্ত বি চলছে এবং এতে আপনার অ্যাক্সেস রয়েছে। (প্রয়োজনে একটি অস্থায়ী শুরু করুন)।

  2. উদাহরণস্বরূপটি থামান (শেষ হবে না) এটি কয়েক মিনিটের জন্য চলমান অবস্থায় থাকার পরে, তাই এটির অনুমোদিত_কিগুলি ফাইলটিতে সর্বজনীন কী সংরক্ষণ করার সুযোগ রয়েছে।

  3. বন্ধ হওয়া উদাহরণ থেকে মূল ইবিএস ভলিউমটি আলাদা করুন A. এটি আপনার চলমান দৃষ্টান্ত B এ সংযুক্ত করুন এবং এটি মাউন্ট করুন B.

  4. মাউন্ট করা ফাইল সিস্টেম থেকে সর্বজনীন কী অনুলিপি করুন।

  5. ইবিএস ভলিউমটি আলাদা করে মুছুন। অস্থায়ী উদাহরণ এটিকে সমাপ্ত করুন A.


1
এটি কীভাবে আসল প্রশ্নটি আসলে সমাধান করে তা নিশ্চিত নয় ... আপনি যদি ইবিএস-সমর্থিত দৃষ্টান্তগুলি ব্যবহার করেন তবে কেবলমাত্র এডাব্লুএস ইসি 2 উদাহরণগুলির সাথে মোকাবিলা করার এক উপায় এটি।
জেরেমি বাউস

জনসাধারণের কীটি বন্ধ করার জন্য আপনি অস্থায়ী দৃষ্টান্তটি চালানোর সময় ব্যতীত আপনাকে ইবিএস বুট উদাহরণগুলি ব্যবহার করার দরকার নেই। আপনি যা করতে চান তা হ'ল জনসাধারণের কীটি যা এই পদ্ধতিটি করে।
এরিক হ্যামন্ড

1
আপনার যদি ব্যক্তিগত কী থাকে আপনি এই জাতীয় ব্যবস্থা গ্রহণ না করে পাবলিক কীটি পুনরায় জেনারেট করতে পারেন।
জেরেমি বাউস

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

1
কি দারুন! পাবলিক কী পেতে প্রচুর কাজ। অ্যামাজনের পক্ষে "এক্সপোর্ট পাবলিক কী" বিকল্পটি রাখা সহজ হত।
Jus12

37

সঠিক ssh-keygen কমান্ডটি হ'ল:

ssh-keygen -y -f /path/to/privatekey > /path/to/publickey

এটি পূর্বের উত্তরের মন্তব্য বা প্রস্তাবিত সম্পাদনা হওয়া উচিত। আপনি যদিও সঠিক।
জে কটন

আপনি ঠিক বলেছেন এটি একটি মন্তব্য করা উচিত ছিল। দুর্ভাগ্যক্রমে, আমি এখনও মন্তব্য করার সুযোগগুলি অর্জন করি নি :-(
আরএসমোর্থি

হাহাহা, আপনি সেখানে যান। সংশোধন করে চিমিং দেওয়ার জন্য ধন্যবাদ
জে কটন

এই উত্তরটি যদি তার ব্যক্তিগত কীতে অ্যাক্সেস করে তবে তা কার্যকর হবে, তবে মূল প্রশ্নে, সেই ব্যক্তিগত কীটি অন্য কোনও জায়গায় রয়েছে এবং অ্যাক্সেসযোগ্য নয়।
এরিক হ্যামন্ড

1
চালানো chmod 400 your_private_key.pemযদি আপনি পেতে "অনুমতি খুব খোলা ত্রুটি হল"
crizCraig

7

আমি ইতিমধ্যে একটি উত্তর সরবরাহ করেছি যা এসবিএস পাবলিক কীতে পেতে ইবিএস ভলিউম ব্যবহার করে, তবে এখানে কনসোল আউটপুটে পাবলিক কীটি প্রেরণকারী একটি ইউজার-ডেটা স্ক্রিপ্ট দিয়ে একটি অস্থায়ী ইসি 2 উদাহরণ শুরু করে আপনি এটির অন্য উপায়টি পেতে পারেন। পদক্ষেপ এখানে:

নিম্নলিখিত কোডটি output-ssh-key.userdataআপনার স্থানীয় কম্পিউটারে নামের একটি ফাইলে সংরক্ষণ করুন । এই কম্যান্ডগুলিতে স্থানীয়ভাবে চালাবেন না!

#!/bin/bash -ex
exec> >(tee /var/log/user-data.log|logger -t user -s 2>/dev/console) 2>&1
adminkey=$(GET instance-data/latest/meta-data/public-keys/ | 
  perl -ne 'print $1 if /^0=[^a-z0-9]*([-.@\w]*)/i')
cat <<EOF
SSHKEY:========================================================================
SSHKEY:HERE IS YOUR PUBLIC SSH KEY FOR KEYPAIR "$adminkey":
SSHKEY:$(cat /home/ubuntu/.ssh/authorized_keys)
SSHKEY:========================================================================
SSHKEY:Halting in 50min ($(date --date='+50 minutes' +"%Y-%m-%d %H:%M UTC"))
EOF
sleep 3000
halt

ব্যবহারকারী-ডেটা স্ক্রিপ্ট হিসাবে উপরের ফাইলটি দিয়ে উবুন্টু 10.04 এলটিএস ইনস্ট্যান্স চালান। আপনি যে কী-পেয়ারটি পাবলিক এসএস কী পুনরুদ্ধার করতে চান তা উল্লেখ করুন:

ec2-run-instances \
  --key YOURKEYPAIRHERE \
  --instance-type t1.micro \
  --instance-initiated-shutdown-behavior terminate \
  --user-data-file output-ssh-key.userdata \
  ami-ab36fbc2

কনসোল আউটপুটটিকে উদাহরণ থেকে অনুরোধ করুন যতক্ষণ না এটি আপনার পাবলিক এসএস কী না দেখায়। রান-ইনস্টান্স কমান্ড থেকে ফিরে আসা আইডি উল্লেখ করুন:

ec2-get-console-output YOURINSTANCEID | grep SSHKEY: | cut -f3- -d:

2-10 মিনিটের মধ্যে আপনি এই জাতীয় আউটপুট পাবেন:

========================================================================
HERE IS YOUR PUBLIC SSH KEY FOR KEYPAIR "erich":
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6rn8cl41CkzaH4ZBhczOJZaR4xBBDI1Kelc2ivzVvCB
THcdJRWpDd5I5hY5W9qke9Tm4fH3KaUVndlcP0ORGvS3PAL4lTpkS4D4goMEFrwMO8BG0NoE8sf2U/7g
aUkdcrDC7jzKYdwleRCI3uibNXiSdeG6RotClAAp7pMflDVp5WjjECDZ+8Jzs2wasdTwQYPhiWSiNcfb
fS97QdtROf0AcoPWElZAgmabaDFBlvvzcqxQRjNp/zbpkFHZBSKp+Sm4+WsRuLu6TDe9lb2Ps0xvBp1F
THlJRUVKP2yeZbVioKnOsXcjLfoJ9TEL7EMnPYinBMIE3kAYw3FzZZFeX3Q== erich
========================================================================
Halting in 50min (2011-12-20 05:58 UTC)

অস্থায়ী উদাহরণটি স্বয়ংক্রিয়ভাবে এক ঘন্টাের মধ্যে নিজেকে শেষ করে দেবে, তবে আপনি যদি এটি নিশ্চিত করতে চান যে আপনি যে দুটি সেন্ট চালাতে ব্যয় করবেন তার চেয়ে বেশি চার্জ করা হচ্ছে না।


আমি এডস্ক্লির একটি আধুনিক ইনস্টলেশন নিয়ে এটি চেষ্টা করেছি এবং এটি আপনার ব্যবহারকারী-ডেটা স্ক্রিপ্টের সাথে কাজ করে। তবে আমাকে কমান্ডগুলি সামান্য মানিয়ে নিতে হয়েছিল। এটি ইউরোপীয় -১-অঞ্চলের জন্য কাজ করেছে: এউএসএসি 2 রান-দৃষ্টান্তগুলি - কি-নাম মাইকি - ইনস্ট্যান্স-টাইপ t1.micro - ইনস্ট্যান্স-ইনিশিয়েটেড-শাটডাউন-আচরণ সমাপ্তি - ইউজার-ডেটা ফাইল: // আউটপুট- ssh-key.userdata --image-id ami-c1167eb8; aws ec2 get-কনসোল-আউটপুট - ইনস্ট্যান্স-আইডি i-0ce56c0e02086160d; aws ec2 টার্মিনেট-ইনস্ট্যান্স - ইনস্ট্যান্স-আইডি i-0ce56c0e02086160d
holmb

(সম্পাদিত) ঠিক আছে ফর্ম্যাটিং এখানে ভয়ঙ্কর, আমি আলাদা উত্তর হিসাবে পোস্ট করব।
বার্নহার্ড

5

আপনার যদি বেসরকারী এসএসএইচ কী থাকে তবে আপনি নিম্নলিখিত এসএস-কীজেন কমান্ডটি চালিয়ে পাবলিক কী উপাদানটি পুনরায় তৈরি করতে পারেন :

 ssh-keygen -i -f /path/to/private-key > /path/to/public-key

এটিই সরল অংশ ... এডাব্লুএস কনসোল এবং এপিআই কোনও ইসি 2 ইনস্ট্যান্স শুরু করার সময় 2 টি কীপাসে পুশ করা সমর্থন করে না। সিস্টেম অ্যাডমিনিস্ট্রেটরকে অন্য উপায়ে করার জন্য এটি একটি অনুশীলন।

আপনার যদি ইতিমধ্যে অনুমোদিত পরিচয় কীটিতে অ্যাক্সেস থাকে তবে আপনি কেবল নীচের এসএস-কপি-আইডি কমান্ডটি সম্পাদন করতে পারেন :

 ssh-copy-id -i /path/to/public-key user@EC2-instance

এটি প্রদত্ত সর্বজনীন কী আপনার সার্ভারে এবং ~user/.ssh/authorized_keysফাইলটিতে স্বয়ংক্রিয়ভাবে অনুলিপি করে ফাইলে যথাযথ অনুমতি নিশ্চিত করবে ensure

আরও মার্জিত উপায় হ'ল আপনার কনফিগারেশন পরিচালনা প্রক্রিয়াগুলিতে অতিরিক্ত পরিচয় কীগুলি অন্তর্ভুক্ত করা। আমার ক্ষেত্রে এটি নোডের জন্য পুতুল কনফিগারেশনে অতিরিক্ত কীগুলি যুক্ত করে ।

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


0

আরেকটি বিকল্প হ'ল ইউজার_ডাটাতে একটি শর্ট স্ক্রিপ্ট যুক্ত করা যা মূলের জন্য আরও একটি এসএস কী যুক্ত করে:

#!/bin/bash

touch ~/.ssh/authorized_keys
chmod 400 ~/.ssh/authorized_keys

echo "<KEY>" >> ~/.ssh/authorized_keys

তারপরে আপনি মেশিনে রুট হিসাবে লগইন করতে পারেন ssh -l root -i <KEYFILE> URLএবং কেবল ব্যবহারকারী ec2_user, ubuntu এর অনুমোদিত_কিগুলি থেকে কীটি পড়তে পারেন বা তবে এটি বলা হয়।

কেবলমাত্র - আপনার মেশিনটি সর্বজনীনভাবে পৌঁছনীয় করতে হবে এবং বাইরের 22 থেকে পোর্টে অ্যাক্সেস করা নিশ্চিত করা দরকার।

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