`Rsync` द्वारा प्रत्येक सर्वर के लिए` ~ / .ssh / config` सेटिंग का उपयोग कैसे करें


14

अब मैं -e 'ssh -p 10022'पोर्ट निर्दिष्ट करने के लिए विकल्प के साथ rsync का उपयोग कर रहा हूं ।

मैं पहले ही ssh सेटिंग कर चुका हूँ ~/.ssh/config

Host myvps
  HostName example.com
  User ironsand
  Port 10022

क्या मैं इस कॉन्फिग को rsync से आसानी से उपयोग कर सकता हूं? या क्या मैं ~/.rsyncनिर्दिष्ट सर्वर के लिए एक डिफ़ॉल्ट पोर्ट बना और सेट कर सकता हूं ?

जवाबों:


22

"myvps"होस्टनाम के रूप में निर्दिष्ट करें ।

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

उपयोगकर्ता घर से rsync करना जहाँ dsh जहाँ ssh config रखा गया है, मेरे लिए काम किया, यहाँ तक कि यह नोड उम्मीद का समर्थन करता है।
स्टालिन गीनो

8

इसने मेरे लिए काम नहीं किया। मैंने अपने ~ / .shsh / config में जंप होस्टिंग की है

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: hostname vm-app01 को हल नहीं कर सका और न ही सर्वनाम, या ज्ञात नहीं rsync: कनेक्शन अनपेक्षित रूप से बंद (0 बाइट्स अब तक प्राप्त) [प्रेषक] rsync त्रुटि: अस्पष्टीकृत त्रुटि (कोड 255) at / SourceCache / rsync / rsync 42 / rsync / io.c (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

संपादित करें, मैं -F sudo rsync -az -e "ssh -F /Users/kbroughton/.ssh/config" के साथ एक कॉन्फ़िगर फ़ाइल लोड करने के लिए rsync ssh को मजबूर करके नाम समाधान प्राप्त करने में सक्षम था।

यह पिछले एक त्रुटि लेकिन दूसरे पर हो जाता है। अनुमति अस्वीकृत (publickey, gssapi-keyex, gssapi-with-mic)। ssh_exchange_identification: दूरस्थ होस्ट द्वारा बंद किया गया कनेक्शन

कनेक्शन में स्पष्ट रूप से सेटिंग -i और उपयोगकर्ता @ की कोशिश की गई, लेकिन एक ही त्रुटि होती है।

संपादित करें

एक अन्य डेटा बिंदु। यदि मैं अपने नाम vm-pivot rsync कार्यों के बजाय पिवट vm (जंप होस्ट) के फ्लोटिंग आईपी का उपयोग करता हूं। लेकिन स्पष्ट रूप से मेरे सभी ssh / config इन -e "ssh" काम नहीं करता है। विवरण: स्थानीय मैक, rsync 3.1.0 के लिए उन्नत, दूरस्थ सेंटोस rsync 3.0.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 को आमंत्रित करते हैं और ProxyCommand में 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 / local / bin / rsync -az -e "sudo -u user ssh" /var/data/sources/data.tar.gz vm-app01: / home / user


-1

@darKoram

"Vm-app01" का पूर्ण DNS नाम क्या है? यह सार्वजनिक होना चाहिए, क्योंकि आप दावा करते हैं कि आप इसे बिना ssync के ssh के भीतर पहुँचा सकते हैं। लेकिन, आप अपने मेजबान को "21ct-dev1- *" पैटर्न के माध्यम से पकड़ने की उम्मीद करते हैं। मैं वास्तव में यह नहीं देख सकता कि यह किसी भी तरह से कैसे काम कर सकता है। यदि आप होस्टनाम को पैटर्न करने की कोशिश करते हैं, तो इसे कुछ इस तरह दिखना चाहिए:

Host *.21ct-dev1-domain.tld

फिर rsync की कॉल तब कुछ इस तरह दिखनी चाहिए:

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

"Vm-app01" को कैसे हल किया जाता है? होस्ट फ़ाइल, जीत, nis, nss? क्या आपके पास एक उपनाम है? क्या आप एक डोमेन के भीतर हैं? यह निश्चित रूप से एक "सरल" DNS समस्या की तरह दिखता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.