Şimdiye kadar, en kolay yol sadece scp ile kopyalamaktır. Ayrıca, bu sözdizimi aslında diğer bazı önerilerin aksine çalışır.
Bu sözdizimini kolaylıkla yenemezsiniz. Potansiyel olarak karmaşık boruları düşünmek zorunda kalmadan tekrar tekrar kopyalamanızı, rsync'i veya istediğinizi kopyalamanızı sağlar. Bu sözdizimi sezgisel olarak açıktır, sizi takip eden Sys Admins tarafından daha kolay desteklenecek ve kediden yararsız kullanılmayacaktır .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Gönderen scp adam sayfası : -3
İki uzak konak arasında kopyalama yerel ana bilgisayar üzerinden aktarılır. Bu seçenek olmadan veriler doğrudan iki uzak ana bilgisayar arasında kopyalanır. Bu seçeneğin ilerleme ölçeri devre dışı bıraktığını unutmayın.
Aşağıdaki örnekte
- İş istasyonunuz MacBook-Pro olarak adlandırılmıştır.
- Dev Jump Box adı devjumpserver
- Dev Application Server, devapplicationserver olarak adlandırıldı
- .Local adlı LAN DNS bölgesinde
- KG Jump Box, qajumpserver olarak adlandırılır
- KG Uygulama Sunucusu, qaapplicationserver olarak adlandırılır
- .Local adlı LAN DNZ bölgesinde
- 670GB / etc / hosts dosyasının test kopyasını yapacağız ;-)
- SSH ortak anahtar kimlik doğrulaması yapılandırılmış olarak varsayılmıştır.
İşte, iş yerinizden uygulama sunucularına uygun atlama (diğer adıyla bastion sunucusu) aracılığıyla doğrudan erişimi ayarlayan bir ~ / .ssh / config dosyası.
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Ana bilgisayar *
ServerAliveInterval 60
Ev sahibi uygulamaları
Ana BilgisayarAdı devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% sa:% p
Kullanıcı barrychapman
Ana bilgisayar qaapplicationserver
Ana BilgisayarAdı qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% sa:% p
Kullanıcı barrychapman
MacBook-Pro: ~ barrychapman $
Hedef sunucuda dosya olup olmadığını sınama, orada olmayacak.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: / tmp / hosts dosyasına erişemiyor: Böyle bir dosya veya dizin yok
Sinyal 1 ile öldürüldü.
MacBook-Pro: ~ barrychapman $
Şimdi iş uygulamanız üzerinden Dev Application sunucusundan QA Application'a bir dosya kopyalayalım.
MacBook-Pro: ~ barrychapman $ scp -3 geliştirme sunucusu: / etc / hosts qaapplicationserver: / tmp /
Sinyal 1 ile öldürüldü.
Sinyal 1 ile öldürüldü.
MacBook-Pro: ~ barrychapman $
Şimdi QA Uygulama Sunucusunda kopyalanan dosyanın varlığını kontrol edelim. Bu sefer orada olacak.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ Tmp / ana
Sinyal 1 ile öldürüldü.
MacBook-Pro: ~ barrychapman $
Not
ProxyCommand bağlantısını kapatırken, "Sinyal 1 tarafından öldürüldü" uyarı mesajını görürsünüz. Bu SSH, ProxyCommand bağlantısını yıkıyor ve endişelenecek bir şey değil. LogLevel Quiet
Bastion host config stanza'nıza ekleyerek bundan kurtulabilirsiniz .