Bir ssh oturumu içinde scp kullanmadan bir dosyayı nasıl kopyalarım?


55

Bir sisteme ssh ile giriş yaptım ve her iki sistemde de scp yok. Scp programını kullanmadan bir dosyayı kopyalamak için nasıl.


Netcat (nc) her iki sistemde var mı? Öyleyse, bir TCP portunu tünellemek için ssh oturumunuzu kullanın ve bu portta nc kullanın.

Eğer var mı rsync?
slhck

3
Bunu da yapabilirsiniz:ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
nm

@nm tırnak gerekli (benim için ubuntu sunucusu)
Ivan Black

@ nm Benim için çalışmıyor - dosya bozuk (sanırım giriş mesajı onu kırar).
monnef

Yanıtlar:


94

Bir dosya göndermek için:

cat file | ssh ajw@dogmatix "cat > remote"

Veya:

ssh ajw@dogmatix "cat > remote" < file

Bir dosyayı almak için:

ssh ajw@dogmatix "cat remote" > copy

20
@ ggg hiç doğru değil. cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./testher şey iyi çalışıyor. İkili dosyalar hakkında kendiliğinden "sihir" yoktur. Benim örneğimdeki her iki dosya da aynı karşılaştırmaya sahip ve aynı sağlama toplamına sahip. Kontrol pencereleri ve yazdırılamayan karakterler gibi şeyler nedeniyle bir terminal penceresinden kopyalayıp yapıştırmanın işe yaramayacağı doğrudur, ancak böyle borular kullanmak asla bir terminale yaklaşmaz.
Flexo

@Flexo Buna benzer bir şeye ihtiyacım var, tek istisna, bir klasördeki tüm jpg dosyalarına ihtiyacım var. / Storage / sdcard1 / * jpg ve >aynı adı taşıyan dosyalara nasıl yineleyebilirim ?
George Profenza,

2
@GeorgeProfenza tarkarışıma eklemeniz gerekir . tar cvf - /path/*.jpg | ssh foo@bar.com "tar xvf -"ya da çalışması gereken benzer bir şey.
Flexo,

Yukarıda ggg ve Flexo’nun söylediklerinin bir anlamı, ssh’da “-t” seçeneğini kullanamayacağınızdır.
mjg123

1
Güzel! Ayrıca ilk kedi yerine pv file | ssh ajw@dogmatix "cat > remote"
pv'yi kullanabilirsiniz

3

Bunu dene:

cat myfile.txt | ssh me@otherhost 'cat - > myfile.txt' 

2
o kadar çok kedi çağırmaya gerek yok
Flexo

1

Sen kullanabilirsiniz xxdve alıntı bazı çirkin üzerlerinde birden fazla dosya yanı sıra çalıştırmak komutlar üzerinde kopyalama ve bunları çalıştırmak için:

ssh -t foo@bar.com "
echo $'"$(cat somefile | xxd -ps)"' | xxd -ps -r > "'somefile'"
chmod +x somefile
echo $'"$(cat someotherfile | xxd -ps)"' | xxd -ps -r > "'someotherfile'"
chmod +x someotherfile
./somefile
./someotherfile
"

ah, cevabım çok açık bir şekilde l33t
Aric

-1

Dosyayı bir uzaktan kumandaya cataktarmanın yanı sıra, dosyaları aktarmak için bazı SFTP istemcilerini de kullanabilirsiniz.


+1 ancak OP'nin sistemler üzerinde olmadığı için scp'yi önlemeye çalıştığına dikkat edilmelidir. Bu kısıtlama göz önüne alındığında, bir FTP sunucusunun alıcı ucunda bulunması gerekir ve bu da kopyalama işlemini genellikle varsayılan olarak orada olan yazılım dışındaki yazılımlara bağımlı kılar.
Paul Sasik

-1

python3 -m http.serverİstenen dosya ile aynı dizinde - bundan sonra olabilir curlveya wgettarayıcınız içeren bir dosyayı indirmek veya. Bu çalışan komutla, geçerli dizindeki tüm dosyalarınızın, siz Ctrl+ tuşuna basana kadar herkese açık olacağını unutmayın C.

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.