Her sunucu için `~ / .ssh / config` ayarı` rsync` ile nasıl kullanılır


14

Şimdi -e 'ssh -p 10022'bağlantı noktasını belirtmek için seçeneği ile rsync kullanıyorum .

Ben zaten ssh ayar var ~/.ssh/config.

Host myvps
  HostName example.com
  User ironsand
  Port 10022

Bu yapılandırmayı rsync'ten kolayca kullanabilir miyim? Veya Belirli ~/.rsyncbir sunucu için varsayılan bağlantı noktası oluşturabilir ve ayarlayabilir miyim ?

Yanıtlar:


22

Ana "myvps"bilgisayar adı olarak belirtin .

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

ssh config'in tutulduğu, benim için çalıştığı, hatta düğüm umudunu desteklediği kullanıcı ana dizininden rsync yapıyor.
Stalin Gino

8

Bu benim için işe yaramadı. ~ / .Ssh / config dosyamda atlama barındırma var

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: Ana bilgisayar adı çözülemedi vm-app01 : nodename veya servname sağlandı veya bilinmiyor rsync: bağlantı beklenmedik şekilde kapatıldı (şu ana kadar 0 bayt alındı) [gönderen] rsync hatası: / SourceCache / rsync / rsync- adresinde açıklanamayan hata (kod 255) 42 / rsync / io.c (452) [gönderen = 2.6.9]

Ancak, bu iyi çalışıyor

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

Edit, -s sudo rsync -az -e "ssh -F /Users/kbroughton/.ssh/config"

Bu bir hatayı geçiyor ancak diğerine geçiyor. İzin verilmedi (publickey, gssapi-keyex, mikrofonlu gssapi). ssh_exchange_identification: Uzak ana bilgisayar tarafından bağlantı kapatıldı

Ayrıca bağlantıda açıkça -i ve user @ ayarını denedi, ancak aynı hata oluştu.

DÜZENLE

Başka bir veri noktası. Ben onun yerine vm-pivot rsync adı yerine pivot vm (atlama ana bilgisayar) yüzen ip kullanırsanız çalışır. Ama açıkça -e "ssh" tüm ssh / config dökümü çalışmıyor. Ayrıntılar: yerel mac, rsync 3.1.0'a yükseltildi, uzak centos 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]

Bu çalışıyor

[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

Benim durumumda kısayolu kullanamayacağımı fark ettim, ancak gerçek tam ana bilgisayar adı kullanılabilir
dashesy

1

@darKoram. Standart olmayan yolla ssh'ı çağırdığınız ve kalıtım olmadığı için sorun olan ProxyCommand'da ssh kullanmayı denediğiniz durumlar için. Burada iki seçeneğiniz vardır: iç komutta aynı dosyayı doğrudan sağlayın veya dinamik olarak hackleyin. Blog yayınımda bununla ilgili ayrıntılı açıklamalara bakabilirsiniz: http://hubbitus.info/wiki/Blog:Ssh_forwarding_with_same_config_file_hack

Kısacası durumunuz aşağıdaki gibi yapılandırmaya yardımcı olacaktır:

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 ile SSH işlemini çalıştırın:

sudo / usr / local / bin / rsync -az -e "sudo -u kullanıcı ssh" /var/data/sources/data.tar.gz vm-app01: / home / user


-1

@darKoram

"Vm-app01" tam DNS adı nedir? Rsync olmadan ssh içinde ulaşabileceğinizi iddia ettiğiniz için halka açık olmalıdır. Ancak, ssh'ın "21ct-dev1- *" kalıbı üzerinden sunucunuzu yakalamasını beklersiniz. Bunun nasıl çalıştığını gerçekten göremiyorum. Ana bilgisayar adlarını biçimlendirmeye çalışırsanız, şöyle görünmelidir:

Host *.21ct-dev1-domain.tld

Sonra rsync çağrısı daha sonra şöyle görünmelidir:

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

"Vm-app01" nasıl çözülür? Ana bilgisayar dosyası, kazanır, nis, nss? Takma adın var mı? Bir alan adında mısınız? Kesinlikle "basit" bir DNS sorunu gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.