SSH'de yerel sistemime nasıl geçebilirim?


129

Ben sshhosting'ime dizine -ed ve tarindirmek için web uygulamasını, -ed. Ben çalıştığımda mviçin ~/mydirectory/backupsya /home/mydirectory/backups, ben içine ssh'ed ediyorum host benim root olarak "ev" tanımlar.

Yine de webhost sisteminin içinde iken ssh yerel bir sürücüye nasıl mv?


Hangi işletim sisteminden bağlantı kuruyorsunuz?
Zoredache

Yanıtlar:


181

Öncelikle ilk şeyler: ssh, başka bir bilgisayara uzaktan giriş yapmanın bir yoludur. Ssh'den sonra aldığınız kabuk (komut satırı), uzak makinede bir xterm açmış olduğunuz ile aynıdır (hemen hemen). Eğer dosyaları taşımak için böyle bir yol yoksa.

Ancak, uzaktaki bilgisayarın ssh bağlantılarını kabul etmesi, dosya alışverişinde size bazı seçenekler sunar:

Scp kullanın Yerel bilgisayarınızdan uzaktan kumandaya kopyalamak için, yerel bilgisayarı yazın:

scp /tmp/file user@example.com:/home/name/dir

(nerede / tmp / dosya herhangi bir yerel dosyayla ve / home / name / dir ile herhangi bir uzak dizinle değiştirilebilir)

Uzaktaki bilgisayardan yerel olana kopyalamak için, yerel bilgisayara şunu yazın:

scp user@example.com:/home/name/dir/file /tmp

Sshfs kullanın Bu biraz daha gelişmiş ama çok, çok daha hoş (her iki bilgisayarın internet bağlantısı iyi olduğunda. Değilse, scp'ye yapıştırın)

Bir dizini uzaktaki bilgisayardan yerel bilgisayarın (boş) bir dizine "bağlayabilirsiniz". Uzaktaki bilgisayardan / some / remote / dir dizinine "/" yazdığını söyleyin. Uzak bilgisayarda bir dosya / bazı / uzak / dir / dosya varsa, onu / home / youruser / remotecomp / file konumunda görebilirsiniz. Her zamanki gibi kopyalayabilir ve mv ile uzak dosyaları ve dizinleri bile değiştirebilirsiniz.

Bununla birlikte, bağlantı sona erdiğinde / home / youruser / remotecomp komutunun tekrar boş bir dizin haline geldiğini ve yalnızca yerel bilgisayarda diğer dizinlere kopyaladığınız dosyaları sakladığınızı unutmayın.

Bunu başarmak için:

1) sshfs'i kurun:

sudo apt-get install sshfs

2) boş bir dir oluşturun

mkdir /home/youruser/remotecomp

3) iki dizine "bağlantı" (doğru terim mount)

sshfs user@server.com:/some/remote/dir /home/youruser/remotecomp

4) tadını çıkarın

5) dirlerin "bağlantısını kes"

fusermount -u /home/youruser/remotecomp

Yerel bilgisayar Windows kullanıyorsa, Windows sürümlerini bulabilirsiniz scp. Bakınız, örneğin, winscp


Dosyayı uzak makineden yerel makineye "uzak makinedeki terminal" aracılığıyla kopyalamanın bir yolu var mı? Senin durumunda, yerel makinedeki terminali kullandın. Yerel makinenin pencereleri ve uzaktan ubuntu olduğu ve uzak makineye ssh ile giriş yaptığım bir durumdan bahsediyorum.
17'de Mardresh

Genellikle değil. Bildiğim kadarıyla, "uzaktaki makinedeki terminal" üzerinden kopyalamak, "yerel makinedeki" bir SSH sunucusuna ihtiyacınız olduğu anlamına gelir (bilerek cevabım sırasında bunu atladım, ancak "uzak bilgisayarın ssh bağlantılarını kabul etmesi" anlamına geliyordu) "uzak bilgisayarın bir ssh sunucusu çalıştırdığı gerçeği" demek için)
josinalvo

Ancak, pencereler için "scp istemcileri" bulabilirsiniz. Bakınız, örneğin, winscp.net/tr/download.php
josinalvo

sshfsSeçeneği seviyorum
Fibo Kowalsky

Büyük bir dosya aktarıyorsanız, ssh ile rsync kullanın rsync -P -e ssh /tmp/file user@example.com:/home/name/dir. Bunun nedeni, bir dosya aktarımı yarı yolda başarısız olursa scp, sadece dosyayı silmesidir. Öte yandan, rsyncbu -Pseçeneği kullanırsanız , uzaktaki makinede eksik bir dosya tutar ve aktarımı yeniden başlattığınızda, uzaktaki makinede bulunanın yerel makinenizdeki dosyayla eşleştiğinden emin olur ve sonra transferin kaldığı yerden devam edin.
Boris

16

Sen kullanabilir ya scpya rsync. Yerel sisteminizde:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

Ancak, siz yedeklemeden bahsettiğinizden beri, bunun artımlı olacağını kabul ediyorum ve bunu her seferinde yapmanız gerekecek. Bu nedenle, rsyncartımlı yedekleme için daha iyi bir seçimdir. Yerel kabuğunuzda:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

Seçenekler için bkz. rsync(1)ve scp(1)man sayfaları.


10

Scp güvenli kopyasını kullanabilirsiniz .

Sizden yerel kabuk:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

Bu örnek, ssh yoluyla webhost sunucunuzun /path/of-the/tar.archive adresinden / home / mydirectory / backups / dizinine kopyalayacaktır.

Ekstra seçenekler:

-C : Sıkıştırmayı etkinleştirir


6

Ben de aynı problemi yaşadım. İşte kolay çözüm: -

  1. Nautilus'u açın (dosya gezgini)
  2. + Other LocationsSol panelin altındaki düğmesine tıklayın .
  3. Dipte bir şerit var Connect to server. Ssh adresini böyle bir giriş kutusuna yazın ssh://111.222.333.444/.
  4. Açılacak olan diyalog kutusuna kullanıcı adınızı ve şifrenizi giriniz.
  5. Başarılı bir kimlik doğrulama işleminden sonra homeuzak bir konumda olacaksınız . Dosyayı buraya ve buraya taşımaktan çekinmeyin.

Mükemmel cevap! Basit ve asıl sorunun cevabına en yakın, yani ssh uzaktaki bilgisayardan nasıl mv çekersiniz. Cevap, yapamazsınız, yerel bilgisayardan yaparsınız. Veya bu! Bunu kaşifinizden grafiksel olarak yaparsınız, böylece en azından kullanıcıya gerçekten dosyaları doğrudan uzaktan yerelye taşıyabilirsiniz.
Kvothe

2

Diğer cevaplar , ikisini de uzaktaki makineye kopyalamak istediğiniz dosyanın konumunu bilmenizi gerektiren rsyncveya önerir scp.

Bunun yerine, uzaktaki makinede dolaşabilmek istiyorsanız, olduğu gibi ssh, koşmak istediğinizde sftp. Sunucuya giriş yapmak çok benzer ssh, ancak bir kez helpgirdiğinizde, komutların listesini almak için yazın - hem yerel hem de uzak makinelerde dolaşmanızı ve dosyaları kolayca ileri geri aktarmanızı sağlar.


1

İçeriden imkansız olması garip ssh. Normal bir terminalde, bir kişi zmodem komutlarını kullanarak dosya gönderebilir / alabilir.

Bu google up yardımcı oldu zssh: http://zssh.sourceforge.net/ . Birinin orijinaline sarıcı olarak çalıştırılması gerekecek ssh.

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.