পাবলিক কী প্রমাণীকরণ ব্যবহার না করে আমি কীভাবে পাসওয়ার্ডের জন্য প্রম্পট ছাড়াই আরএসএনসি করতে পারি?


44

rsyncএটি পাসওয়ার্ডের জন্য আমাকে অনুরোধ না করেই আমাকে কার্যকর করতে হবে।

আমি rsyncম্যানপেজে দেখেছি যে এটি কমান্ড লাইন আর্গুমেন্ট হিসাবে পাসওয়ার্ড নির্দিষ্ট করার অনুমতি দেয় না।
তবে আমি লক্ষ্য করেছি যে এটি ভেরিয়েবলের মাধ্যমে পাসওয়ার্ড নির্দিষ্ট করার অনুমতি দেয় RSYNC_PASSWORD

সুতরাং আমি ভেরিয়েবলটি রফতানি করার চেষ্টা করেছি, তবে rsyncআমার কাছে পাসওয়ার্ড চাইছে।

export RSYNC_PASSWORD="abcdef"
rsync root@1.2.3.4:/abc /def

আমি কি ভুল করছি?

অনুগ্রহ করে বিবেচনা করুন:

অন্য কথায়, আমার কাজ করা দরকার RSYNC_PASSWORD! :-)


আপনি কি রিমোট সার্ভারে আরএসসিএন ডেমন সক্ষম করেছেন?
রাহুল পাতিল

উত্তর:


13

এই পাসওয়ার্ড এনভায়রনমেন্ট ভেরিয়েবলটি কেবলমাত্র আরএসসিএনসি প্রোটোকল ব্যবহার করার সময় ব্যবহার করতে দেখা যায়:

rsync rsync://username@1.2.3.4:/abc /def

এটি কাজ করার জন্য, আপনাকে ডিমন হিসাবে ( --daemonবিকল্প) হিসাবে আরএসসিএন চালাতে হবে যা প্রায়শই ব্যবহার করে করা হয় inetd.conf

এই প্রোটোকলটি ব্যবহার করার সময়, abcসংজ্ঞায়িত একটি লক্ষ্যের সাথে মিল থাকা উচিত /etc/rsyncd.conf। ব্যবহারকারীর নামটি auth usersএই টার্গেটের জন্য একটি লাইনে উপস্থিত থাকতে হবে এবং secrets fileবিকল্পের সাথে একটি পাসওয়ার্ড ফাইল নির্দিষ্ট করা উচিত ।

এটি এই সিক্রেটস ফাইলটিতে নিম্নলিখিত ফর্ম্যাটটিতে ব্যবহারকারীর নাম এবং পাসওয়ার্ডগুলির মধ্যে ম্যাপিং রয়েছে:

username:password

আর এই পাসওয়ার্ডটিই আপনি RSYNC_PASSWORD এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে নির্দিষ্ট করতে পারবেন।



65

যদি rsyncডিমনটি টার্গেট মেশিনে চলমান না থাকে এবং আপনি স্থানীয় মেশিনে প্রত্যেকের কাছে পাসওয়ার্ড উন্মুক্ত করার বিষয়ে চিন্তা করেন না ( কমান্ড লাইনে কেউ পাসওয়ার্ড কেন ব্যবহার করবেন না? ) আপনি ব্যবহার করতে পারেন sshpass:

 sshpass -p "password" rsync root@1.2.3.4:/abc /def

কমান্ডের শুরুতে স্থানটি নোট করুন, bashশেলের মধ্যে এটি কমান্ডটি (এবং পাসওয়ার্ড) ইতিহাসে সংরক্ষণ করা বন্ধ করবে। RSYNC_PASSWORDএকেবারে প্রয়োজন না হলে আমি ভেরিয়েবলটি ব্যবহার করার পরামর্শ দিই না (এই উত্তরটির পূর্ববর্তী সম্পাদনা অনুসারে), আমি ইতিহাসের সঞ্চয়স্থান দমন করার বা কমপক্ষে ইতিহাসের পরে সাফ করার পরামর্শ দিই। এছাড়াও, আপনি tput resetআপনার টার্মিনালের ইতিহাস সাফ করতে ব্যবহার করতে পারেন ।


2
আপনি কেন কোনও আদেশে পাসওয়ার্ডের স্পষ্ট পাঠ্য যুক্ত করার পরামর্শ দিচ্ছেন, এটি খারাপ লিনাক্স অ্যাডমিন 101 bad
এডি

সুপার হ্যান্ডি .. কিছুক্ষণ ধরে এটির জন্য একটি পদ্ধতির সন্ধান করা হয়েছে। ধন্যবাদ.
আইজাক গ্রেগসন

6
পাসওয়ার্ডটি পরিষ্কার পাঠ্য হিসাবে যুক্ত করা খারাপ, যদিও এটি বর্তমানে এটির পক্ষে যুক্তিযুক্ত একমাত্র সহজ উপায়।
ওয়েস্টন গাঙ্গার

15
আপনি সর্বদা sshpass -p $(cat passFile) ..এটির মতো কিছু করতে পারেন: বাশ ইতিহাসে পরিষ্কার পাসটি গোপন করতে, এবং এটি সুরক্ষিত করতে পাসফাইলে 400 টি chmod
ক্রেসিমির পেন্ডিক

3
আমি জানি যে এটি পুরানো, তবে নতুন পাঠকদের জন্য দয়া করে পাসওয়ার্ডটি উদ্ধৃত করুন - পাসওয়ার্ডগুলিতে বিশেষ অক্ষর এবং স্পেস থাকতে পারে। -p "$RSYNC_PASSWORD"
ধানের ল্যান্ডাউ

16

আপনি পাসওয়ার্ডহীন লগইন করতে স্ট্যান্ডার্ড এসএসআই পরিচয় ব্যবহার করতে পারেন। এটি ডিফল্টরূপে পরিচালনা করা হয় যদি আপনার কাছে ~/.ssh/id_rsaবা এর মতো থাকে তবে আপনি কোনও অনুমোদিত কীপায়ের ব্যক্তিগত কীতে নিজের পথটি হার্ডকোডও করতে পারেন।

এটি পাসওয়ার্ড উন্মুক্ত না করে ব্যাচিং / স্ক্রিপ্টিংকে মঞ্জুরি দেয় এবং প্রাইভেট কীটি কখনও আপস করা থাকলে লক্ষ্য সার্ভার থেকে সর্বজনীন কী সরিয়ে ফেলা যায়।

rsync -e"ssh -i /path/to/privateKey" -avR $sourcedir ${ruser}@${rhost}:~/${rdir}/

আপনি -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nullরিমোট হোস্ট কী যাচাইকরণ জোর না করার মতো যুক্তিগুলি যুক্ত করতে পারেন । সাবধানতা - যা মাঝের আক্রমণগুলিতে মানুষকে উন্মুক্ত করে এবং এটি সাধারণত খারাপ অভ্যাস!


1
এটি বিশেষত কার্যকর যদি আপনি উইন্ডোজ 10 এর জন্য নতুন ব্যাশ শেল ব্যবহার করছেন তবে আমি ভাবছিলাম কেন আরএসসিএন পাসওয়ার্ডহীনভাবে কাজ করছে না। আমি বুঝতে পারি ~/.sshএটি শেলের ভিতরে ফোল্ডারটি ব্যবহার করছে (যেখানে আরএসএনসি থাকে) lives একবার আমি -e ব্যবহার করে ভিতরে কীটি চিহ্নিত করলাম /mnt/c/Users/MyUsername/.ssh, এটি প্রত্যাশার মতো কাজ করেছিল worked (ধন্যবাদ।: ডি)
টবি দেশান

12

স্ক্রিপ্টিংয়ের জন্য খুব দরকারী --password-fileকমান্ড লাইন বিকল্পটি ব্যবহার করা ।

  • Rsync_pass নামে খালি ফাইল তৈরি করুন
  • এই ফাইলটিতে পাসওয়ার্ড লিখুন (আরও কিছু নয়)
  • chmod 600 rsync_pass
  • rsync $args --password-file=rsync_pass user@rsynchost::/share localdirectory

এটি স্ক্রিপ্টিংয়ের জন্য ব্যবহার করা যেতে পারে এবং আরও সুরক্ষিত হতে দেয় যা কেবল সিস্টেম ভেরিয়েবলের পাসওয়ার্ড রফতানি করে।


4
পাঠকের জন্য নোট: এটির জন্য সার্ভারে চলমান একটি rsync ডিমনও প্রয়োজন। আমি সত্যিই আশা করছিলাম যে পাসওয়ার্ডহীন আরএসসিএনসি-র জন্য এসএসএস কীগুলি যথেষ্ট be
শ্রীধর সারনোবাত

যদি কেউ এসএসএস ব্যবহার করতে না চায় তবে এটি করার একমাত্র সঠিক উপায় IM
maxf130

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