বাশ স্ক্রিপ্ট উত্পন্ন ssh কীগুলির জন্য স্বয়ংক্রিয়ভাবে "প্রবেশ করুন" কীপ্রেসগুলি


101

আমি স্ক্রিপ্ট তৈরি করতে চাই, যা কেবল চলমান ssh-keygen -t rsa। তবে কীভাবে এটি 3 বার প্রবেশ করবে?

উত্তর:


217

চেষ্টা করুন:

ssh-keygen -t rsa -N "" -f my.key

-N "" এটিকে একটি খালি পাসফ্রেজ ব্যবহার করতে বলে (ইন্টারেক্টিভ স্ক্রিপ্টে দু'একটি প্রবেশকারীর মতো)

-f my.keyএটিতে কীটি সংরক্ষণ করতে বলে my.key(আপনি উপযুক্ত হিসাবে দেখুন) change

আপনার কোনও প্রবেশ কী সরবরাহ করার প্রয়োজন ছাড়াই পুরো জিনিসটি চলে :)

একটি ইন্টারেক্টিভ স্ক্রিপ্টে প্রবেশকারী পাঠাতে:

echo -e "\n\n\n" | ssh-keygen -t rsa

4
এটি সঠিক আনউসার, তবে আমি আরও একবারে কীভাবে আরও একবার প্রবেশ করতে টিপতে হবে তা জানতে চাই - অন্য স্ক্রিপ্টে।
সাওওসজ

3
নিশ্চিত বিষয় - কোনও স্ক্রিপ্টে কীভাবে নতুন লাইনে পাঠানো যায় তা অন্তর্ভুক্ত করার জন্য উত্তরটি আপডেট করেছে।
রুদু

2
প্রতিধ্বনি -e "। n \ n \ n" | sshkeygen -t rsa আমার পক্ষে কাজ করছে না, আপনি নিজে চেষ্টা করে দেখতে পারেন? এটি শুধুমাত্র প্রথম প্রবেশ পাস। তবে অন্যটিতে, এটি সহজভাবে কাজ করে script
সাওওস্জ

1
আমি এটি পোস্ট করার আগে এটি পরীক্ষা করেছিলাম - এটি দুর্দান্ত কাজ করে, যদিও দেখে মনে হয় এটি ড্যাশ থেকে ssh-keygenবাদ পড়েছে - আপনি কি এটি পিছনে যুক্ত করেছেন? {সম্পাদিত} এছাড়াও - আপনি স্ক্রিপ্টটি একাধিকবার চালাতে পারবেন না - এটি বিদ্যমান _rsaকীফাইলটি ওভাররাইট করতে চান তা নিশ্চিত করার জন্য প্রশ্নগুলিকে পরিবর্তন করে (সুতরাং ay বা n সরবরাহ করা প্রয়োজন)
Rudu

13
আমি yes ""পরিবর্তে echo -e "\n\n\n"( yesঅসম্পূর্ণতার সাথে [বা "y" যেকোন যুক্তি দেওয়া হয় তার ফলাফলকে আউটপুট করে রাখার জন্য প্রস্তাব দিই - এই পরিস্থিতিতে উপযুক্ত যেখানে কোনও প্রোগ্রামের জন্য যা কিছু জিজ্ঞাসা করা যায় তার "হ্যাঁ" উত্তর সরবরাহ করতে চান)। yesসংক্ষিপ্ত, এবং ssh-keygenকখনও একটি প্রশ্ন যুক্ত করা উচিত , যা স্বয়ংক্রিয়ভাবে উত্তর দেওয়া হবে। :)
zrajm


1

মিশেল ম্যারো এর সাথে সম্মত হোন এটির জন্য আরও আরও কিছু প্রয়োজন: ফাইলটি ইতিমধ্যে উপস্থিত থাকলে, এটির ওভাররাইট করতে হবে কিনা তা জিজ্ঞাসা করার পরেও এটি ইন্টারেক্টিভ হবে।

এই প্রশ্নের উত্তর ব্যবহার করুন ।

yes y | ssh-keygen -q -t rsa -N '' >/dev/null

ওভাররাইট বার্তাটি নিঃশব্দ করার জন্য নাল থেকে পুনঃনির্দেশ প্রয়োজন।


0
echo -e "\n"|ssh-keygen -t rsa -N ""

অঁ্যা? আপনার দাবী করা উত্তরগুলি যে কাজ করে না তার তুলনায় এটির তুলনায় আসলেই নতুন নিউলাইন রয়েছে (এবং এটি প্ল্যাটফর্মের সাবসেটে রয়েছে যেখানে echo -eমোটামুটি ছাড়া অন্য কিছু নির্গত হয় -eযা সর্বত্র ssh-keygenউপলভ্য নয়)।
চার্লস ডাফি

... স্পষ্টতই, আমি ssh-keygen -N ''একটি স্বয়ংক্রিয় ইনস্টল পদ্ধতির অংশ হিসাবে উত্পাদন ব্যবহার করি , এবং এটি স্টিডিন মোটেও পড়ে না, সুতরাং এটিতে পাইপযুক্ত echo( কোনও echo বৈকল্পিক) দরকার নেই । (মঞ্জুর, আমি বিশ্বাস করি যে স্টিডিন /dev/nullআমার প্রযোজনার ব্যবহারের সাথে সংযুক্ত রয়েছে; এটি কোনও টিটিওয়াইয়ের সাথে সংযুক্ত হলে ভাল আচরণ হতে পারে, তবে এর </dev/nullচেয়ে উত্তম উত্তরটি তার চেয়ে ভাল হবে echo ... |)
চার্লস ডফি

1
এটি আমাকে একটি ফাইলের $ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
নামের

0

এটি সুরক্ষা এবং পারফরম্যান্সের জন্য ed25519 ব্যবহার করার পরামর্শ দেওয়া হয় ।

yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""

এখানে

-o পুরানো PEM এর পরিবর্তে ওপেনএসএইচ কী ফর্ম্যাট (ওপেনএসএসএইচ 6.5+ প্রয়োজন)

-a ডিএইচ-জিএক্স পরীক্ষার্থীদের স্ক্রিনিং করার সময় প্রাথমিকতার পরীক্ষার সংখ্যা

-t কী এর ধরণ (ed25519, আরএসএ, ডিএসএ ইত্যাদি)

-f /mypath/bla আউটপুট ফাইলের পথ এবং নাম

-N "" খালি পাসফেজ ব্যবহার করুন

এবং yes "y"কোন মিথস্ক্রিয়া জন্য।

এটি দুটি ফাইল উত্পন্ন করবে

/mypath/bla
/mypath/bla.pub

যেখানে blaফাইলটি ব্যক্তিগত এবং bla.pubসর্বজনীন।

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