Server rsync` দ্বারা প্রতিটি সার্ভারের জন্য কীভাবে `~ / .ssh / config` সেটিং ব্যবহার করবেন`


14

আমি এখন -e 'ssh -p 10022'পোর্টটি নির্দিষ্ট করতে বিকল্পের সাথে rsync ব্যবহার করছি ।

আমি ইতিমধ্যে ssh সেটিং মধ্যে আছে ~/.ssh/config

Host myvps
  HostName example.com
  User ironsand
  Port 10022

আমি কি এই কনফিগারেশনটি সহজেই আরএসসিএনসি থেকে ব্যবহার করতে পারি? অথবা আমি ~/.rsyncনির্দিষ্ট সার্ভারের জন্য একটি ডিফল্ট পোর্ট তৈরি এবং সেট করতে পারি ?

উত্তর:


22

"myvps"হোস্টের নাম হিসাবে নির্দিষ্ট করুন ।

rsync /var/bar myvps:/home/foo ...

ssh কনফিগারেশন রাখা আছে যেখানে ব্যবহারকারী হোম dir থেকে rsync করছেন, আমার জন্য কাজ করেছে, এমনকি এটি নোড হপিং সমর্থন করে।
স্টালিন গিনো

8

এটি আমার পক্ষে কার্যকর হয়নি। আমার ~ / .ssh / কনফিগারেশনে জাম্প হোস্টিং আছে

Host 10.x.y.z
    User cloud-user
    HostName vm-pivot
    IdentityFile /path_to_vm_key

Host 21ct-dev1-*
    User cloud-user
    HostName %h.example.com
    ProxyCommand ssh 10.x.y.z -W %h:%p
    IdentityFile /path_to_vm_key


rsync -e "ssh" local_path vm-app01:/remote_path

ssh: হোস্ট-নেমটি ভিএম-অ্যাপ01 সমাধান করতে পারেনি : নোডনাম বা সার্ভারনেম সরবরাহ করা হয়নি, বা জানা নেই 42 / আরএসআইএনসি / আইওএসি (452) [প্রেরক = 2.6.9]

তবে, এটি ঠিক কাজ করে

[kbroughton@kbroughton:project + (develop)] ssh vm-app01
Last login: Thu Apr 17 12:10:37 2014 from 10.a.b.c

সম্পাদনা করুন, আমি rsync ssh -F sudo rsync -az -e "ssh -F /User/kbroughton/.ssh/config" দিয়ে একটি কনফিগার ফাইল লোড করতে বাধ্য করে নাম রেজোলিউশনটি পেরেছি was

এটি একটি ত্রুটি অতীত কিন্তু অন্যটি হয়ে যায়। অনুমতি অস্বীকার করা হয়েছে (পাবলিককি, gssapi-keyex, gssapi- সঙ্গে মাইক)। ssh_exchange_ شناخت: দূরবর্তী হোস্ট দ্বারা সংযোগ বন্ধ closed

এছাড়াও সংযোগে -i এবং ব্যবহারকারী @ কে সুস্পষ্টভাবে সেট করার চেষ্টা করেছি কিন্তু একই ত্রুটি ঘটে।

সম্পাদনা

আর একটি ডেটা পয়েন্ট। যদি আমি পিভট ভিএম এর ঝর্ণা আইপি ব্যবহার করি (জাম্প হোস্ট) এর পরিবর্তে এর নামের ভিএম-পিভট আরএসসিএনসি কাজ করে। তবে স্পষ্টতই আমার সমস্ত ssh / কনফিগারেশন -e "ssh" এ ফেলে দেওয়া কাজ করে না। বিশদ: স্থানীয় ম্যাক, rsync 3.1.0 এ আপগ্রেড হয়েছে, রিমোট সেন্টোস rsync 3.0.9 .9

[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22"  /var/data/sources/data.tar.gz user@vm-pivot:/home/user

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ssh_exchange_identification: Connection closed by remote host
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0]

[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key -W 10.x.y.z:22"  /var/data/sources/data.tar.gz user@10.x.y.z:/home/user
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(181) [sender=3.1.0]

এইটা কাজ করে

[kbroughton@kbroughton:project + (develop)] sudo /usr/local/bin/rsync -az -e "ssh -F /Users/kbroughton/.ssh/config -i /Users/kbroughton/.ssh/identities/vm_key"  /var/data/sources/data.tar.gz user@10.x.y.z:/home/user

আমি বুঝতে পেরেছিলাম যে আমার ক্ষেত্রে আমি শর্টকাটটি ব্যবহার করতে পারি না, তবে প্রকৃত পুরো হোস্ট নামটি ব্যবহার করা যেতে পারে
ড্যাশসি

1

@darKoram। যেসব ক্ষেত্রে আপনি অ-মানক পাথ দিয়ে এসএসএসের আবেদন করেন এবং প্রক্সিকমন্ডে ssh ব্যবহার করার চেষ্টা করুন যা সমস্যা, কারণ কোনও উত্তরাধিকার নেই। আপনার দুটি বিকল্প আছে: সরাসরি অভ্যন্তরীণ কমান্ডে একই ফাইল সরবরাহ করুন, বা এটি গতিশীলভাবে হ্যাক করুন। আপনি যে সম্পর্কে আমার ব্লগ পোস্টে বিশদ বিবরণ দেখতে পারেন: http://hubbitus.info/wiki/Blog:Ssh_forwarding_with_same_config_file_hack

খুব শীঘ্রই আপনার পরিস্থিতিতে কনফিগারেশন যেমন:

Host 21ct-dev1-*
  User cloud-user
  HostName %h.example.com
  ProxyCommand ssh $( egrep -z -A1 '^-F$' /proc/$PPID/cmdline ) 10.x.y.z -W %h:%p
  IdentityFile /path_to_vm_key

0

@darKoram। সুডো দিয়ে এসএসএইচ প্রক্রিয়াটি চালান:

sudo / usr / স্থানীয় / বিন / rsync -az -e "sudo -u ব্যবহারকারীর ssh" /var/data/sورس/data.tar.gz ভিএম-অ্যাপ01: / হোম / ব্যবহারকারী


-1

@darKoram

"Vm-app01" এর সম্পূর্ণ ডিএনএস নাম কী? এটি অবশ্যই সর্বজনীন হতে পারে, যেহেতু আপনি দাবি করেছেন যে আপনি আরএসএনসি ছাড়াই এসএসএসের মধ্যে এটি পৌঁছে দিতে পারেন। তবে, আপনি আশা করছেন যে "21ct-dev1- *" প্যাটার্নের মাধ্যমে ssh আপনার হোস্টটিকে ধরে ফেলবে। আমি সত্যিই দেখতে পাচ্ছি না এটি কোনওভাবে কীভাবে কাজ করতে পারে। আপনি যদি হোস্টনামের নকশা করার চেষ্টা করেন তবে এটির মতো দেখতে হবে:

Host *.21ct-dev1-domain.tld

তারপরে আরএসসিএনসি-এর কলটি এর পরে কিছু দেখতে পাওয়া উচিত:

rsync -e "ssh" /local/path/ vm-app01.21ct-dev1-domain.tld:/remote/path/

"Vm-app01" কীভাবে সমাধান করা হয়? হোস্ট ফাইল, জয়, এনআইএস, এনএসএস? আপনার কি একটি উপনাম আছে? আপনি একটি ডোমেনের মধ্যে আছেন? এটি অবশ্যই একটি "সাধারণ" ডিএনএস সমস্যার মতো দেখাচ্ছে।

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