কীভাবে কোনও এস-এস-কপি-আইডি পূর্বাবস্থায় আনবেন?


15

আমার কাছে একটি 2 নোড হ্যাডোপ ক্লাস্টার রয়েছে।

আমি এই আদেশটি মাস্টারের উপর চালিয়েছি:

$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1

আমি এটিকে কীভাবে পূর্বাবস্থায় ফিরিয়ে আনতে পারি? আমি আসলে কীটি পুনরায় নিয়োগ করতে চাই।

192.168.1.1 দাস হয়।

উত্তর:


20

আপনি দৌড়ে যাওয়ার সময় আপনি যে অনুলিপিটি অনুলিপি করেছিলেন তা শনাক্ত করুন ssh-copy-id:

cat ~/.ssh/id_rsa.pub

এসএসএইচ সার্ভারে আপনি কীটি অনুলিপি করেছেন:

ssh hadoop@192.168.1.1

সম্পাদনা করুন ফাইল ~hadoop/.ssh/authorized_keysউপর 192.168.1.1আপনার পছন্দের সম্পাদক ব্যবহার করে, এবং আপনার কী সম্বলিত লাইন মুছে দিন।


1
এটি আরও স্বয়ংক্রিয়ভাবে করার কোনও উপায় আছে কেন? লাইকssh-rm-id hadoop@192.168.1.1
এসআর

@ এসআর আমি এই একটি স্বয়ংক্রিয় আদেশ দেয় এমন একটি আদেশের বিষয়ে অবগত নই। তত্ত্ব অনুসারে, আপনি লাইনটি সম্পাদনা করতে এবং মুছে ফেলার জন্য কমান্ড (বা অনুরূপ) sshচালানোর জন্য একটি সামান্য ওয়ান-লাইনার দিয়ে নিজেকে "স্বয়ংক্রিয়" করতে পারেন। Superuser.com/questions/429954/… দেখুনsed~/.ssh/authorized_keys
ডেভিড এডওয়ার্ডস

4

আপনি যদি এর ssh-copy-idমতো করে থাকেন:

remote='user@machine'
ssh-copy-id -i $remote

সুতরাং আপনি কোনও পাসওয়ার্ড ব্যবহার না করেই এই দূরবর্তী মেশিনটি অ্যাক্সেস করতে পারেন:

ssh $remote

এটি সিস্টেমেটিক উপায়ে পূর্বাবস্থায় ফেলার জন্য আপনি এর মতো কিছু স্ক্রিপ্ট করতে পারেন:

idssh=$(awk '{print $2}' ~/.ssh/id_rsa.pub)
ssh $remote "sed -i '#$idssh#d' .ssh/authorized_keys"

আমি স্ক্রিপ্টগুলিতে আমার scpবেশ কয়েকটি ফাইলের প্রয়োজন এটি ব্যবহার করি , তাই আমি কেবল একবার পাসওয়ার্ড চেয়েছি।


1
এটি কিছুটা বিপজ্জনক হতে পারে: আপনি কীটির মন্তব্যের জন্য গ্রেপ করছেন । এটি কোনও অর্থ ছাড়াই একটি নির্বিচারে স্ট্রিং এবং এটি একাধিকবার থাকতে পারে। আমি হয় দীর্ঘ জন্য grep চাই AAA....==স্ট্রিং (প্রকৃত কী) অথবা থেকে সম্পূর্ণ লাইন জন্য id_rsa.pub। কী কী অপসারণটি স্বয়ংক্রিয় করতে হয় তা দেখানোর জন্য +1।
পার্লডাক

1
@ পার্লডাক আপনি ঠিক বলেছেন তৃতীয় ক্ষেত্রের চেয়ে কী ($ 2) নিজেই ব্যবহার করা আরও ভাল। ধন্যবাদ.
জাভি এম।

@ জাভি এম। আমি আর একটি সমস্যার মুখোমুখি হয়েছি। সেডে ডিলিমিটার হিসাবে ডিফল্ট হিসাবে ব্যবহৃত ফরোয়ার্ড স্ল্যাশটি আমার সর্বজনীন কীতে ছিল। ফলস্বরূপ, আমি সেড ডিলিমিটার হিসাবে একটি সেমিকোলন ব্যবহার করা ভাল বলে মনে হয়েছে যেহেতু এটি পাবলিক কীতে প্রদর্শিত না হওয়ার সম্ভাবনা রয়েছে। এটি করার জন্য, প্রথমে চরিত্রটি থেকে বাঁচতে হবে। আমি এই জাতীয় কিছু দিয়ে শেষ করেছি:ssh $remote "sed -i '\;$idssh;{d}' .ssh/authorized_keys"
ccalvert

অক্ষরগুলি সর্বজনীন কীতে শেষ হতে পারে এমন কিছু তথ্য এখানে
ccalvert

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