আমি কীভাবে অনুমোদিত_কিজ ফাইলগুলিতে এসএসএইচ কী যুক্ত করব?


185

আমাজন ইসি 2 তে আমার একটি উবুন্টু সার্ভার রয়েছে, যা আমি উন্নয়নের জন্য ব্যবহার করি এবং আজ আমি নির্বোধে আমার ~/.ssh/authorized_keysফাইলের বাইরে সমস্ত কিছু সাফ করে দিয়েছি । ভাগ্যক্রমে আমার একটি এসএসএইচ খোলা আছে, তাই আমি এখনও সংযুক্ত আছি এবং ফাইলটি ঠিক করতে পারি, কিন্তু যখন আমি আমার কী ফাইলটি পিছনে রাখার চেষ্টা করি তখন এটি কার্যকর হয় না। আমি এখনও আমার স্থানীয় মেশিনে সার্ভার থেকে অনুমতি অস্বীকার পেয়েছি।

authorized_keysআমার এসএসএইচ কীটি এসএসএস-আরএসএ যুক্ত করে এসএসএস-আরএসএ ছাড়ার চেষ্টা করেছি। আমি এসএসএইচ কীটি সমস্ত এক লাইনে তৈরি করার চেষ্টা করেছি, তবে এটি কোনওভাবেই কার্যকর হয়নি।

আমাকে আবার কিছু করতে হবে যা ফাইলটি পুনরায় লোড করার মতো কিছু আছে?


3
বছরগুলি পরে, এটি এখনও প্রাসঙ্গিক & সক্রিয় মনে হয়; কেবল একটি পর্যবেক্ষণ করতে চেয়েছিলেন, বুলেটটি ধুয়ে দেওয়ার বিষয়ে কথা বলেছেন: "ভাগ্যক্রমে আমার একটি এসএসএইচ খোলা আছে, তাই আমি এখনও সংযুক্ত রয়েছি [..]" - শীশ! ; ডিপি
নস্ট্রোমভ

1
আমার জন্মদিনে সম্পাদিত এই পোস্টটি আমার জন্মদিনে দুই মাস আগে আমাকে বাঁচায়।
ytpillai

উত্তর:


198

সার্ভারের সাথে শুরু হওয়া ফাইলগুলির সাথে ফাইলটি কখনও সংরক্ষণ করা উচিত নয়-----BEGIN RSA PRIVATE KEY----- , এটি আপনার ব্যক্তিগত কী। পরিবর্তে, আপনাকে অবশ্যই ফাইলের মধ্যে সর্বজনীন কী রাখতে ~/.ssh/authorized_keysহবে।

এই সর্বজনীন কীটির .pubব্যবহারের উত্পন্ন হওয়ার সময় এর এক্সটেনশন রয়েছে ssh-keygenএবং এর সামগ্রীগুলি শুরু হয় ssh-rsa AAAAB3। (বাইনারি ফর্ম্যাটটি এই প্রশ্নের উত্তরে বর্ণিত হয়েছে )।

~/.sshসার্ভারে অনুমতিগুলি 700 হওয়া উচিত The ফাইলটির ~/.ssh/authorized_keys(সার্ভারে) একটি 600 মোড থাকার কথা।

যদি ব্যক্তিগত কীটি কোনও পাসওয়ার্ড দিয়ে সুরক্ষিত না হয় এবং আপনি এটি সার্ভারে রেখেছেন তবে আমি আপনাকে একটি নতুন উত্পন্ন করার পরামর্শ দিচ্ছি:

ssh-keygen -t rsa

আপনি সার্ভার থেকে মুছে ফেলা ব্যক্তিগত কীটি পুনরুদ্ধার করতে পারবেন না এমন আপনি যদি নিশ্চিত হন তবে আপনি এড়িয়ে যেতে পারেন।

এটি যদি সহায়তা না করে তবে sshআরও ভার্বোসিটির জন্য বিকল্পগুলি দিয়ে চালান :

ssh -vvv user@example.com

সার্ভার সাইডে, আপনি /var/log/auth.logবিশদ জন্য পর্যালোচনা করতে পারেন ।


1
অ্যামাজন ইসি 2 সার্ভারের সাথে আমি যা পাই তা হ'ল প্রাইভেট কী (কী.পিএম)। আমার কোথাও পাবলিক কী নেই।
ডেভ লং

3
@ ডেভ লং: আপনাকে অবশ্যই একটি নতুন কী তৈরি করতে হবে ssh-keygen -t rsaএবং সদ্য তৈরি হওয়া id_rsa.pubফাইলটি ~/.ssh/authorized_keysআপনার সার্ভারে রেখে দিতে হবে। আরও দেখুন docs.amazonwebservices.com/AWSEC2/latest/UserGuide/...
Lekensteyn

15
@ ডেভলং: আপনি যে কোনও সময় ব্যক্তিগত কী থেকে সর্বজনীন কী তৈরি করতে পারেন। আপনি নিম্নলিখিত কমান্ডটি দিয়ে কেবল এটি করতে পারেন: ssh-keygen -y -f key.pem > key.pub
মরগান ব্ল্যাকথর্ন

5
@ মরগান ব্ল্যাকথর্ন এটি সত্য হলেও, আমি দূরবর্তী উত্স থেকে কোনও গ্রহণ না করে আপনার ব্যক্তিগত কী তৈরির পরামর্শ দেব। প্রাইভেট কীটি ফাঁস হয়নি বলে আপনি পুরোপুরি নিশ্চিত হতে পারবেন না।
Lekensteyn

2
পছন্দ করুন
লেকেনস্টেইন

175

দূরবর্তী মেশিনে আপনার সার্বজনীন কী ইনস্টল করার বিকল্প উপায় authorized_keys:

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

কিছু সুবিধা:

  • ssh-copy-idইনস্টল করা প্রয়োজন হয় না ।

  • গ্যারান্টি দেয় যা mkdirযুক্ত হওয়ার চেষ্টা করার আগে কাজ id_rsa.pubকরে authorized_keys


10
আপনার উত্তর আমাকে কোনও অতিরিক্ত প্যাকেজ ছাড়াই একাধিক রিমোট মেশিনে এটি করতে সহায়তা করেছে, আপনাকে ধন্যবাদ।
nol

এটি গ্যারান্টি দেয় না যে "~ / .ssh" ডিরেক্টরি এবং "~ / .ssh / अधिकृत_keys" ফাইলটি সঠিক অনুমতি নিয়ে তৈরি করা হবে।
নিক

1
@ নিক, আমার সমস্যা ছিল। সুতরাং সম্ভবত একজনকে অবশ্যই তাদের অস্তিত্বের জন্য প্রথমে যাচাই করতে হবে, যদি chmod (700 / ফোল্ডার, 600 / ফাইল) দিয়ে সঠিকভাবে তৈরি করা অনুপস্থিত হয়, এবং কেবল তখন যুক্ত? সুতরাং তাহলে সম্ভবত এটি একটি ওলাইনার হতে পারে না?
অ্যানিএগাইল ile ই

7
@ অ্যানিএইগিলি আমি মনে করি @ মারিয়াসবুটুকের mkdir -p ~/.sshদেওয়া উত্তরের অংশটি পরিবর্তন করে দেওয়া umask 077 && mkdir -p ~/.sshযাতে এটি সঠিকভাবে কাজ করবে তা নিশ্চিত করার জন্য আপনার যা করার দরকার তা হ'ল।
নিক

1
ty @ নিক! আমি এটা যেতে হবে।
অ্যানি দ্য অ্যাজিলে

128

আপনার যদি লগইন ভিত্তিক প্রমাণীকরণ থাকে তবে ssh-copy-idআপনার সর্বজনীন কীগুলি দূরবর্তী সার্ভারে যুক্ত করতে ব্যবহার করুন।

ssh-copy-id user@host

1
এটি ম্যাকের জন্য একটি বৈধ কমান্ড বলে মনে হচ্ছে না, যা আমার ক্লায়েন্ট মেশিনটি।
ডেভ লং


13
ওএসএক্স-এ আপনি ব্রিউ দিয়ে ইনস্টল করতে পারেন:brew install ssh-copy-id
ফিল

ম্যাকপোর্টে, এই কমান্ডটি ব্যবহার করে ইনস্টল করা যেতে পারে sudo port install openssh +ssh_copy_id+ssh_copy_idSsh_copy_id বৈকল্পিক সঙ্গে OpenSSH ইনস্টল করা হবে।
স্টিফান লাসিউইস্কি

6
নোট করুন যে phildawson.tumblr.com এর নির্দেশাবলী আপনাকে অবিশ্বস্ত সফ্টওয়্যারটি মূল হিসাবে ইনস্টল করতে বলে। এটি বেশ বিপজ্জনক এবং হ্যাক হওয়ার একটি ভাল উপায়, আপনি যদি না জানেন তবে আপনি লেখককে বিশ্বাস করতে পারেন না।
স্টিফান লাসিউইস্কি

38
local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit

16

সবচেয়ে সহজ উপায় অনুলিপি এবং পেস্ট করা ...

প্রথমে আপনার স্থানীয় পাবলিক কী এর বিষয়বস্তু দেখুন / অনুলিপি করুন id_rsa.pub"এসএসএস-আরএসএ" সহ আপনার ইমেল ঠিকানার সাথে শেষ না হওয়া পর্যন্ত:

cat ~/.ssh/id_rsa.pub

তারপরে authorized_keysসার্ভারে সম্পাদনা করুন এবং সেই ফাইলের অন্য কোনও কীগুলির নীচে আপনার ক্লিপবোর্ডের সামগ্রীগুলি আটকে দিন:

nano ~/.ssh/authorized_keys

এবং সংরক্ষণ করুন Ctl+O, ফাইলটি Ctl+Xপ্রস্থান করুন, এসএসএইচ সেশন থেকে প্রস্থান করুন exitএবং এটি কাজ হয়েছে তা নিশ্চিত করতে আবার লগ ইন করার চেষ্টা করুন। যদি এটি পাসওয়ার্ড না চাইতে থাকে তবে এটি কাজ করে।


5

আমি ভেবেছিলাম যে আমি এটিতে অবদান রাখতে পারি যেহেতু এটি বিশেষত এডাব্লুএস উদাহরণগুলির সাথে সম্পর্কিত এবং সমস্ত উত্তরগুলি কেবলমাত্র লিনাক্স সমস্যা হিসাবে সমস্যাটিকে বিবেচনা করে, যেন এটি একটি হার্ডওয়ারের একটি অংশ। আপনার প্রথমে যা বোঝার দরকার তা হ'ল আপনার কখনই ইসি 2 উদাহরণটিকে হার্ডওয়্যার হিসাবে ব্যবহার করা উচিত নয়। এটি কেবলমাত্র আপনার জন্য আরও কাজ তৈরি করতে চলেছে তাদেরকে অস্থির হিসাবে গণ্য করুন। এডাব্লুএস-এর সংঘটিত লোকেদের আমি দেখতে সবচেয়ে বড় বাধা। আপনার দৃষ্টান্তের একটি এএমআই করুন এবং নতুন দস্তাবেজে আপনার প্রয়োজনীয় কীটি ইনজেক্ট করুন। মেঘ- init এটি আপনার যত্ন নেবে। আসলটির এএমআইয়ের বাইরে নতুন উদাহরণ তৈরি করার সময় আপনাকে আরও যা করতে হবে তা হল সঠিক পাবলিক কীটি। যদি আপনি অনুমোদিত উত্তরের মন্তব্যে পছন্দ করেন তবে আপনি নিজের কী কী জোড় পাব এবং পেম ফাইল তৈরি করতে চান এডাব্লুএস আপনাকে EC2 এ ব্যবহারের জন্য আপনার পাবলিক কীগুলি আপলোড করার বিকল্প সরবরাহ করে।

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws


3

সর্বজনীন কী সংরক্ষণ করার পরে আপনার ব্যক্তিগত কম্পিউটারে আপনার পিসিতে একটি ডিরেক্টরি এবং ফাইলটি সংরক্ষণ করতে হবে। এবং পুটি অন এসটিএসের লেখক বিভাগে আপনার ডেস্কটপে আপনি যে ব্যক্তিগত কী ফাইলটি সংরক্ষণ করেছেন সেটিকে নির্দেশ করা উচিত। এটা কাজ করবে। এটা আমার জন্য কাজ করে.


1
আমি কেবল এটি পছন্দ করতাম যদি উইন্ডোজ কনসোলটি তার দোভাষীর সাথে সমস্ত ssh কার্যকারিতা যুক্ত করতে পারে
ডেনিস

2

রিমোট মেশিনে শেলটি পান যেখানে আপনি কীটি রাখতে চান এবং তারপরে প্রয়োজনীয় ফাইল এবং ডিরেক্টরি তৈরি করতে, তার অনুমতি নির্ধারণ করতে এবং ফাইলটিতে কীটি সংযোজন করতে আপনি এই ওয়ান-লাইনারটি চালাতে পারেন। অবশ্যই আপনাকে KEYGOESHEREনীচের অংশটি এবং তার পরে মন্তব্যটি পরিবর্তন করতে হবে।

mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "ssh-rsa KEYGOESHERE user@remotehost or note" >> ~/.ssh/authorized_keys

1

এখানে একটি প্রকরণ রয়েছে যার দ্বারা আপনার কাছে কোনও পাঠ্য ফাইলে পাবলিক কী ফাইলের নামের একটি তালিকা থাকতে পারে এবং পাবলিক কী ফাইলগুলির বিগ ব্যাচও একই ডিরেক্টরিতে রয়েছে।

আপনি যদি আমদানির জন্য পাবলিক কী ফাইলগুলির একটি বিশাল তালিকা দিচ্ছেন তবে এই প্রকরণটি সহায়ক হতে পারে :-)

$ for i in $(cat ListOfPubKeyFiles.txt) ; do cat $i | ssh User@Hostname "cat >> ~/.ssh/authorized_keys"; done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.