ডিমন-ওভার-এসএস মোডে কাজ করার জন্য আরএসএনসি পেতে পারি না


11

আমি প্রতিদিন একটি সার্ভার থেকে ডেটা অনুলিপি করতে rsync সেট আপ করার চেষ্টা করছি। সিস্টেমটিকে যতটা সম্ভব সীমাবদ্ধ করার জন্য, আমি ম্যান পেজে বর্ণিত মোডটি ব্যবহার করার চেষ্টা করছি: "রিমোট-শেল সংযোগের মাধ্যমে আরএসআইএনসি-ডেমন বৈশিষ্ট্যগুলি ব্যবহার করা হচ্ছে"

সুতরাং আমি শিকড়গুলির হোম ফোল্ডারে rsyncd.conf নামে একটি ফাইল রেখেছি:

[root]
path = /
read only = true

এবং একটি পরীক্ষা হিসাবে / ইত্যাদি / পাসডাব্লুড অনুলিপি করার চেষ্টা করেছে:

rsync -vv -e ssh myserver::root/etc/passwd .

তবে আমি নিম্নলিখিত পেতে:

opening connection using: ssh myserver rsync --server --daemon . 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]

আমি এগুলি করার কারণটি হ'ল একবার এটি কাজ করা হয়ে গেলে, আমি আদেশটি নির্দিষ্ট করে অ্যাক্সেসকে সীমাবদ্ধ করার পরিকল্পনা করি

rsync --server --daemon .

~ / .ssh / অনুমোদিত_কিগুলিতে


কীভাবে / var / লগ / সুরক্ষিত বা / var / লগ / বার্তাগুলি প্রাপ্ত সার্ভারে লগ ইন করা হয়?
ডেভ চেনি

এটি ছিল: rsync: কনফিগারেশন ফাইল "/etc/rsyncd.conf" খুলতে অক্ষম: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই (2) ধন্যবাদ, এটি একটি সমাধানের দিকে নিয়ে গেছে, যা আমি উত্তর হিসাবে পোস্ট করব।
rjmunro

উত্তর:


11

ডকুমেন্টেশনে একটি ত্রুটি বা আরএসসিএনসি প্রয়োগের বিষয়টি মনে হচ্ছে। man rsync বলেছেন:

রাইকিঙ্ক একটি রিমোট শেল ব্যবহার করে কোনও হোস্টের সাথে সংযোগ স্থাপন এবং তারপরে একটি একক-ব্যবহার "ডেমন" সার্ভার তৈরি করে যা এটির কনফিগারেশন ফাইলটি রিমোট ব্যবহারকারীর হোম ডায়ারে পড়ার প্রত্যাশা করে supports

তবে / var / লগ / বার্তাগুলি অনুসারে রুটের সাথে সংযোগ করার সময়, এটি কনফিগার ফাইলের জন্য /etc/rsyncd.conf সন্ধান করছিল (এসএসএইচ-র উপর ব্যবহার না করা অবস্থায় একটি rsyncd.conf ফাইলের মানক অবস্থান)।

যুক্ত করে ডান কনফিগারেশন ফাইলটি ব্যবহার করতে আমাকে এসএসএস সার্ভারকে বাধ্য করতে হয়েছিল

command="rsync --config=/root/rsyncd.conf --server --daemon ."

to /root/.ssh/authorised_keys।

আমি কনফিগারটি কেবলমাত্র ডিফল্ট লোকেশনটিতে রাখি না কারণ হ'ল আমি চাইনি যে কেউ দুর্ঘটনাক্রমে একটি সাধারণ আরএসসিএন ডেমন শুরু করতে পারে - আমি যখন ডেমোনকে সঠিক ssh কীটি পেয়ে যায় তখন কেবল এটির এত বেশি অ্যাক্সেস থাকে want


5

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

কীটি সীমাবদ্ধ রাখার জন্য কোন আদেশটি সন্ধান করতে, ssh কমান্ডে সামান্য পরিবর্তন করে উপযুক্ত rsync কমান্ড লাইনটি চালান:

rsync -avz -e 'ssh -v' stuff somewhere:/place

আপনি ডিবাগ আউটপুটে একটি লাইন দেখতে পাবেন যেমন:

debug1: Sending command: rsync --server -vlogDtprze.iLs . /place

সেই সঠিক আদেশটি হ'ল আপনি কী .ssh / অনুমোদিত_কিজে চালাতে সক্ষম হতে কীটি সীমাবদ্ধ করতে চান:

command="rsync --server -vlogDtprze.iLs . /place" ssh-dss AAAASSHKEY=

3
আমি সিস্টেমের অংশগুলির বিভিন্ন পঠিত ব্যাকআপগুলি করতে সক্ষম হতে চাই - যেমন ব্যাকআপ ই-মেইল এবং এসকিউএল ডাটাবেসগুলি প্রতিদিন, তবে সপ্তাহে একবার অন্যান্য জিনিস। প্রতিটি সম্ভাব্য ব্যাকআপের জন্য আমার একটি নির্দিষ্ট কমান্ড এবং একটি নির্দিষ্ট কী প্রয়োজন এবং আমি একই অবকাঠামো সহ অতিরিক্ত অ্যাড-হক ব্যাকআপ করতে সক্ষম হব না।
rjmunro

2
যথেষ্ট উপযুক্ত - আমি গ্রহণ করি "সিস্টেমটিকে যতটা সম্ভব সীমাবদ্ধ করার জন্য" যথেষ্ট আক্ষরিক :)
মাইকিবি

1
আপনি কোনও স্ক্রিপ্টে একাধিক কমান্ড রাখতে পারেন এবং স্ক্রিপ্টটিকে প্রথম লাইন ইনপুট হিসাবে পরামিতিগুলি পাস করতে পারেন।
অ্যালেক্সো

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