নন-ইন্টারেক্টিভ মোডে rsync জোর করে


8

আমি পাইথন স্ক্রিপ্টের মধ্যে rsync ব্যবহার করতে চাই। আমি এটিকে subprocessমডিউলটি ব্যবহার করে কল করছি এবং authorized_keyদূরবর্তী মেশিনে ফাইলটিতে সঞ্চিত পাবলিক কীগুলি ব্যবহার করে প্রমাণীকরণ করছি ।

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

আমি rsyncযদি পাসওয়ার্ডের অনুরোধ না করে সত্যায়িত না করতে পারি তবে ত্রুটি দিয়ে প্রস্থান করতে বাধ্য করতে পারি ?

Udi,

উত্তর:


9

ধরে নিই যে আপনি এসএসএইচ রিমোট শেল (এবং উদাহরণস্বরূপ - আরএসসিএনসি সার্ভারের সাহায্যে নয়) দিয়ে আরএসসিএনসি ব্যবহার করেন, তবে আপনি এসএসএইচটি এমনভাবে চালাতে আরএসসিএনসি পেতে পারেন যা কখনই পাসওয়ার্ড চাইবে না। উদাহরণস্বরূপ, একবার এই কলটি ব্যবহার করতে পারেন:

rsync -e 'ssh -o "NumberOfPasswordPrompts 0"' source user@target:/path

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


5

এখানে ssh- র জন্য কমান্ড লাইন অপশন রয়েছে যা আমি এটি শান্ত রাখতে ব্যবহার করি।

ssh -o stricthostkeychecking=no -o userknownhostsfile=/dev/null -o batchmode=yes -o passwordauthentication=no

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


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

1
@ মিক: এই জাতীয় সমালোচনার সাথে ঝামেলা হ'ল এগুলি কিছু প্রসঙ্গে পুরোপুরি অনুপযুক্ত। উদাহরণস্বরূপ, আমি এমন একটি পরিবেশে কাজ করি যেখানে লাস্ট অভ্যন্তরে গভীর সমাহিত একটি ব্যক্তিগত নেটওয়ার্কে আরএসইএনসি অপারেশনগুলির লক্ষ্য সাধারণত এম্বেড থাকা সিস্টেমের হোস্ট। বাইরের বিশ্বের সাথে মোটেই কোনও সংযোগ নেই এবং বিল্ড সিস্টেমকে আপডেট কোডগুলি লক্ষ্যবস্তুগুলিতে নীচে ঠেলে দিতে সক্ষম হওয়া প্রয়োজন। এটি ssh এবং rsync এর সম্পূর্ণ বৈধ ব্যবহার এবং এর স্পষ্ট সমাধান হ'ল হোস্ট চেকিং বন্ধ করে দেওয়া। এ সম্পর্কে একটি নিখুঁত নিয়ম তৈরি করা মোটেই কোনও অর্থবোধ করে না।
স্টেলেডোগ

@ স্টেলেডোগ - আমার পরামর্শ হ'ল ব্যবহারের ক্ষেত্রে বেশিরভাগ ক্ষেত্রে সঠিক পরামর্শ। তবে, আমি স্বীকার করি যে আপনি যখন বিশ্বাস করেন না যে কোনও খারাপ অভিনেতা মিআইটিএম আক্রমণ করতে আপনার নেটওয়ার্কটিতে যুক্তিসঙ্গতভাবে অ্যাক্সেস পেতে পারে, আপনি একটি দুর্বল সুরক্ষা কনফিগারেশন চয়ন করতে পারেন। একটি ল্যাব পরিবেশের জন্য প্রয়োজনীয় সুরক্ষা কনফিগারেশন (যেমন আপনি উল্লেখ করেছেন) অবশ্যই একটি উত্পাদন পরিবেশের থেকে পৃথক হবে কারণ ঝুঁকিটি স্বাভাবিকভাবেই হ্রাস পেয়েছে।
মিক 21

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

1

পুনরায়: জেমসের পরামর্শ (এটি টিটি না দেওয়া), সাবপ্রসেসের জন্য, স্টডেন = পোপেনকে প্যারামিটার হিসাবে রাখার চেষ্টা করবেন না।


0

প্রথমে শেল থেকে আরএসসিএনকে কাজ করতে হবে, কমান্ডটি দেখতে হবে।

যদি এটি ব্যর্থ হয় তবে ssh কমান্ডটি নিজেই ডিবাগ করবে। যখন এটি সমস্ত কাজ করে তখন অজগর স্ক্রিপ্টের জন্য কী ঘটে তা দেখুন

এটি কোনও খারাপ টিউটোরিয়াল নয়


0

আপনি কীভাবে আরএসএনসি চালু করছেন তার উপর নির্ভর করে এটিকে কোনও টিটিওয়াই বা পিটিওয়াই না দিয়ে সহায়তা করতে পারে।

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

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

আপনি যদি এসএসএইচ-এর মাধ্যমে আরএসএনসি করছেন, আপনি প্রশ্নে থাকা হোস্টের জন্য বা -o কমান্ড লাইন সুইচের মাধ্যমে নিম্নলিখিতটি আপনার ssh_config ফাইলে যুক্ত করতে পারেন:

PreferredAuthentications publickey

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

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