2015-03-03 19 views
13

Bir uzaktan sunucusundan sunucusuna bir dosya kopyalamaya çalışıyorum yerel yerel makineden. İşteDosya, üçüncü bir yerel makineden scp kullanarak iki uzak sunucu arasında nasıl aktarılır?

localA $ scp [email protected]:/path/to/file [email protected]:/path 

Sorun uzak makinelerde userB ve userC her ikisi için iki şifreleri geçmesi gerektiğidir yapmaya çalıştığım şey bu.

Garron göre yukarıdaki çalışması gerekir, ancak ben izin reddedildi var.

Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive). 
lost connection 

Herhangi bir öneriniz var mı? Eğer authorised_keys dosyasındaki girdileri yoksa

cevap

21

Bu sorular zaten Süper kullanıcı üzerinde var: -3 orada anlatılan seçenek komut verilmiş olduğu PC üzerinden rota trafiğe scp talimatını

https://superuser.com/questions/686394/scp-between-two-remote-hosts-from-my-third-pc

scp -3 [email protected]:/home/user1/file1.txt [email protected]:/home/user2/file1.txt 

gibi.

Uzak1 ve remote2 aynı ağdaysa, yukarıdakiler doğrudur. durumda

değil: - Sen yönlendirme Ben -o "ForwardAgent yes” bulmak

+0

Yerel ana bilgisayardan yavaş bir bağlantı varsa, yerel ana bilgisayardan trafiği yönlendirmek için -3 eklemesi gerçekten yavaşlar mı? – wcochran

+0

@wcochran Evet, öyle. Ancak her durumda çalışması kolay. İki uzak ana bilgisayar arasında, herhangi bir sırrı açığa çıkarmayacak şekilde doğrudan bir SSH bağlantısı kurmanın genel bir yolu olup olmadığını merak ediyorum. – sudo

1

Sadece şifreleri gerekir. 2 sunucuya (localA -> remoteB & remoteB -> remoteC) giriş yaptıktan ve güvenli bağlantıyı kurduktan sonra orijinal komutunuz çalışmalıdır.

+0

Merhabalar, ben hala açık bir şekilde kullandığım gerçeğinden dolayı bunu yapamam, inanıyorum. Ama bahşiş harika. authorised_keys ~/.ssh/config ile birleştirildi ve diğer adlar çok daha hızlı. Teşekkürler – Alan

3

Bu Linux terminalinde aşağıdaki komutu kullanılarak mümkündür:

SCP -3 kullanici1 @ ip: yolu// dizin/kullanıcı2 @ ip den: yolu/için bir istemi/dizin

kullanici1 @ ip şifresi: kullanici2 @ ip şifresi: böyle şifreleri soran görünecektir

Eğer önceden tarafından sırayla her iki şifreleri verirsek İlk paroladan sonra ssing enter, kabul etmeli ama o olmaz. Her iki şifreyi de tekrar verseniz de, ilk şifreden sonra enter tuşuna basmamakla birlikte, tekrar kabul etmeyecektir.

Sen vermek zorunda kullanici2 ilk, enter tuşuna basın ve sonra Kullanıcı1'in şifrenizi ve enter tuşuna basın. Bu çalışacak.

Bunun doğru sesler etmediğini biliyorum ama sadece bu işe yarar. Bu, sc içinde hata'dur. Yerel hem uzak sunuculara ssh Eğer

+0

İçinde de saklanan şifre ile bir kabuk betiği oluşturmak mümkün mü? – sjd

+0

bağlıdır! Hedefiniz nedir? Scp mi yapmak istiyorsun ssh? –

21

(-> Uzaktan 1 & yerel - Yerel> REMOTE2), o zaman deneyebilirsiniz:

ssh -A -t [email protected] scp srcpath [email protected]:destpath 

Bu düz REMOTE1 gelenREMOTE2 transfer olacak Yerel kimlik bilgilerinizi kullanarak.

Parola sorulmasını istemiyorsanız, uzaktan kumandada authorized_keys dosyasını ayarlamalısınız.

+0

Teşekkürler Ruben, anahtarları kullanarak, şimdiye kadar gördüğüm en deneyimli ssh kullanıcılarının çoğunluğuna göre, her ikisi de en güvenli seçenek. – Alan

+0

Bunun bir notu, * doğrudan * uzaktan1'den uzak2'ye bağlanacağından, o zaman yerelden uzak bir şekilde ssh için yeterli olmadığından, uzak1'den uzak2'ye ssh olduğunuzu kontrol etmeniz gerektiğidir (örn. uzaktaki ~/.ssh/config değerindeki isimler ve konfigürasyon1) – Peteris

+1

Şimdiye kadar gördüğüm en iyi çözüm. Sunucuları birbirine "ssh" olarak yetkilendirmek zorunda değilsiniz, tek ihtiyacınız olan şey, ikinize de anahtarınızla erişmektir. Ve scp -3'den farklı olarak, veriler doğrudan çok hızlı bir yerel ağ üzerinden sunucular arasında kopyalanır. –

1

portunu kullanmak zorunda hile yapar:

localA $ scp -o "ForwardAgent yes” [email protected]:/path/to/file [email protected]:/path 

Sevdiğim bu daha iyi -3 ortalarda makine yavaşlamasını istemiyoruz çünkü daha işler bitti. Ben de @RubenCaro cevabını seviyorum, ama bu daha doğrudan görünüyor.

+0

Benim için çalışmıyor.Hata: 'İzin reddedildi (publickey, gssapi-keyex, gssapi-with-mic, şifre). bağlantı kesildi. Bir ipucu? Teşekkürler! – Tung

+0

Benim için (özel anahtar kullanarak) çalışır: scp -o 'ForwardAgent yes' -i localkey.pem userB @ remoteB:/yol/to/dosya userC @ remoteC:/yol. – brunesto

İlgili konular