Cara mentransfer file melalui ssh saat sudah ssh ke server

12

Saya mentransfer file menggunakan perintah ini

scp <localfile> user@host:<destination>

Perintah di atas hanya berfungsi ketika saya tidak ssh'd ke server.

Bagaimana cara mentransfer file lokal ke mesin host ketika saya sudah ssh'd masuk ??

Saya ssh dalam menggunakan ssh user@hostname

Di mana-mana
sumber
2
OS apa? Buka terminal lain dan gunakan perintah scp
Impulss
1
itu adalah centOS. Itulah yang saya lakukan sejauh ini. Saya hanya berharap untuk sesuatu yang lebih nyaman.
Omnipresent

Jawaban:

5

Pertanyaan yang bagus scplagi, tapi sebaliknya. Saya melakukannya dan ini dia:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

diedit untuk menambahkan: seperti yang ditunjukkan dalam komentar, ini mengharuskan komputer jarak jauh dapat mengakses komputer lokal. Dan sshd atau (openssh-server) perlu diinstal dan dijalankan pada mesin lokal.

Chris K
sumber
2
Ini mengira mesin lokal dapat diakses dari yang jauh dan ini tidak selalu benar.
laurent
Namun, jika itu benar itu akan berfungsi dengan baik.
daviewales
3

Ini akan membantu untuk mengetahui apa yang Anda jalankan di mesin host. Jika Anda menggunakan Linux,

scp user@host:/path/myfile .

harus bekerja.

Josh
sumber
user @ host adalah mesin jarak jauh dari apa yang saya mengerti pada Pertanyaan sehingga perintah ini tidak akan menyalin file dari mesin lokal ke yang jauh tetapi dari remote ke lokal jika tidak SSHed di host dan akan menyalin dari jarak jauh ke dirinya sendiri jika SSHed.
laurent
Saya pikir ada beberapa ambiguitas dalam pertanyaan itu. Bagi saya, user@hosttampaknya merujuk ke komputer mana pun yang saat ini tidak Anda kendalikan. Jadi, ketika OP tidak masuk ke komputer jarak jauh, maka user@hostkomputer jarak jauh. Ketika OP masuk ke komputer jarak jauh, maka itu user@hostadalah komputer lokal. Jika asumsi saya benar, maka jawaban ini masuk akal.
daviewales
Itulah tepatnya bagaimana saya menafsirkan pertanyaan itu juga, daviewales. Juga, Anda benar, user @ host akan mewakili workstation apa pun yang saat ini TIDAK Anda gunakan, menurut saya. Saya berdebat tentang apakah akan membuatnya lebih jelas dalam tanggapan saya, tetapi saya pikir itu akan tersirat.
Josh
Bagaimanapun, bahkan jika user @ host mewakili mesin lokal ketika pengguna login pada mesin remote (tidak seperti OP mengatakan dia ingin mentransfer file lokal ke mesin host), ini hanya akan berfungsi jika mesin lokal dapat diakses dari remote pada (biasanya jika mereka berada di LAN yang sama) dan tidak dalam skenario di mana mesin jarak jauh di internet dan mesin lokal tidak memiliki IP tetap.
laurent
1

Jika Anda memiliki jalan kembali ke mesin lokal Anda (mesin lokal Anda dapat diakses dari jarak jauh - biasanya ketika kedua mesin berada di LAN yang sama), menggunakan scp dari mesin jarak jauh akan berfungsi ( scp local:/path-to-file .).

Jika mesin lokal Anda tidak dapat dijangkau dari yang jauh (biasanya benar jika remote Anda adalah VPS di internet dan mesin lokal Anda memiliki IP dinamis), cara terbaik Anda adalah membuka terminal baru pada mesin lokal dan menyalin file.

Cara lain, lebih rumit dan tentu saja tidak hanya perlu menyalin file adalah membuat VPN antara mesin (atau jaringan) sehingga kedua mesin dapat dijangkau dari yang lain dan Anda dapat menggunakan scp dari satu mesin atau dari yang lain.

laurent
sumber
0

saat masuk ke sistem jarak jauh (lebih mudah dengan hanya cd ke lokasi file) sudo scp file_location / file_name user @ host: file_location

saat keluar dari sistem remote sudo scp authoried_user @ hostname: file_location / file_name new_location_on_local_machine

FOOTNOTE: ingat, saat logout dari sistem jarak jauh, jika ini terminal baru, kata sandi pertama akan menjadi kata sandi sudo, kata sandi ke-2 akan menjadi kata sandi pengguna yang diotorisasi. jika Anda telah melakukan sudo-red sebelumnya di terminal tertentu, maka itu hanya kata sandi pengguna resmi yang Anda butuhkan. perhatikan ini, itu membuatnya rumit.

obalolu
sumber