İki farklı portlu SCP


15

Yerel bilgisayarımdan iki uzak sunucu arasında dosya kopyalamak için scp komutunu nasıl kullanabilirim?

uzak sunucu 1: IP = 67.12.21.133 ve port = 6774

uzak sunucu 2: IP = 67.129.242.40 & port = 6774

scp -rp -P 6774 denny@67.12.21.133: /home/denny/testapp1.txt denny@67.129.242.40:

67.12.21.133 şifresini verdikten sonra hata veriyor,

ssh: ana bilgisayara bağlan 67.129.242.40 port 22: Bağlantı reddedildi

bağlantı kaybedildi


Ben de bunu test ettim, ama sadece ilk ev sahibi için çalışıyor. İkinci bağlantı noktası 22'ye kilitlenir.
gajdipajti

Yanıtlar:


19

Sen kullanabilirsiniz ~/.ssh/configkonaklar için kullanımına bağlantı noktalarını belirlemek için (ve diğer birçok güzel şeyler ayarlamak için; man sayfasına bakın man ssh_config):

# ~/.ssh/config

Host 67.12.21.133
  Port 6774

Host 67.129.242.40
  Port 6774

Bunu yaparken -3, dosyaları yerel makinenizden kopyalayan scp seçeneğini kullanmanız gerekir. Aksi takdirde, scp ilk ana bilgisayarda ssh üzerinden scp komutunu verir, bu yüzden aslında çalışır

 ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:

ve ardından yerel ana bilgisayar yerine ilk uzak ana bilgisayarın (67.12.21.133) ~ / .ssh / config kullanılır.

Eğer kurulum olduğunda ~/.ssh/configdoğru, bu çalışması gerekir:

scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:

Tabii ki, ~ / .ssh / config dosyasının içeriğini ilk uzak ana makinenize de kopyalayabilir ve daha sonra -3muhtemelen aktarımı hızlandıracak olan seçenek olmadan scp'yi kullanabilirsiniz.

Veya scp'nin kullandığı hileyi kullanabilir ve böyle bir komut satırı kullanabilirsiniz:

ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:

(Ssh ve scp için farklı port parametresi durumuna dikkat edin: ssh -p 6774vs. scp -P 6774)

Not: Bu bilgiyi OpenSSH bugzilla'dan aldım ve bir hata olarak girdim: https://bugzilla.mindrot.org/show_bug.cgi?id=2020


'-3' geçerli bir seçenek gibi görünmüyor - sadece "scp: illegal option - 3" alıyorum.
Zengin Sedman

8

Kolay bir çözüm bulamadım ama sshfs'yi aşağıdaki şekilde kullanmaya çalışabilirsiniz:

mkdir /tmp/h1
mkdir /tmp/h2

sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2

cp /tmp/h1/files.* /tmp/h2

fusermount -u /tmp/h1
fusermount -u /tmp/h2

Başka bir yol ssh kullanmak olabilir (aslında başarılı bir şekilde test edilmemiştir):

ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"

Şu anda iki şifreyi girmek için doğru yolu bulamıyorum. Bu iki şifreyi birkaç kez ister ancak kimseyi kabul etmez. Belki ana bilgisayarlar arasında ssh anahtarlarını değiştirirseniz çalışır. Çünkü parolalara ihtiyacınız yok.

Umarım bu yardımcı olur? Thomas


6

Linux Academy blogundaki bu sayfaya göre , -P 6774seçeneği ikinci uzak yoldan hemen önce de kullanmanız gerekir :

scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:

-PBayrağın her kullanımı tüm komut için değil, yalnızca komut satırındaki bir sonraki konum için geçerlidir. -PÖnceki yolla (veya komut adı [ scp]) arasında bir yeri olmayan tüm konumlar varsayılan olarak standart bağlantı noktası (22) 'dır.


Benim için işe yaramıyor. Yazık, çünkü bu en iyi çözüm gibi görünüyor. Bağlantı koptu.
david.perez

1
Sadece bağlantı güncellendi (ben ilk giriş unuttum ama ...). Linux Akademi, sitelerini yeniden yapılandırmaya karar verdi. Umarım yardımcı olur, bazıları!
Dan Hunsaker

Keşke bu işe yararsa. Ama anladım -P: No such file or directory.
Tom

@Tom - Bunu hangi sistemde çalıştırıyorsunuz? scpBurada belirtilen uygulamadan farklı bir uygulamanız olabilir .
Dan Hunsaker

Bu Ubuntu 17.04.
Tom

-2

Verileri bir sunucudan diğerine aktarmanız gerekiyorsa, SCP komutunu kullanın. Böyle yaparak

Terminal'i açmak için klavyenizdeki Ctrl+ Alt+ tuşlarına basmanız Tyeterlidir. Açıldığında aşağıdaki komutu çalıştırın.

scp -pr root@192.168.1.2:/path/to/files /destination/path

Not: Port numarasından bahsetmek istiyorsanız -P parametresi kullanılabilir.


2
soruyu okumadınız. Limanlarla ilgili bir sorunu var. ilk bağlantı noktasını ayarlayabilirsiniz, ancak -P parametresi ile ikinci somunu
gajdipajti

@gajdipajti Cevabımda bir bağlantı noktası belirtmedim ve not olarak ekledim. Kullanıcı aynı portu kullandığını da belirtti. 2. ve 3. satırlara bakın :)
Mitch

2
Ancak bu şekilde çalışmaz, ilkini -P ile ayarlarsınız, ikincisi 22 olarak kalır. Sadece bir deneyin. Şu anda testleri yapıyorum, ancak hala çalışma çözümleri yok.
gajdipajti

-P seçeneğini yalnızca standart olmayan bir bağlantı noktası kullanıyorsanız kullanırsınız.
Mitch
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.