Membalikkan SCP melalui koneksi SSH

17

Saya cukup sering membutuhkan beberapa file dari server ketika saya menggunakan laptop. Tetapi jika saya tidak tahu di mana file itu, saya harus sshke server, melihat-lihat exit,, dan kemudian scp server:file .. Jika saya bekerja dengan desktop dan server saya, keduanya memiliki IP statis, saya hanya dapat SCP file secara terbalik ( scp desktop:~ file), tetapi saya tidak dapat melakukannya untuk laptop saya. Apakah ada cara yang bagus untuk SCP file mundur melalui koneksi SSH? Sehingga komputer yang saya hubungkan dengan SSH mengirim file mundur ke klien?

pavpanchekha
sumber
Mengapa tidak menggunakan mDNS?
Ignacio Vazquez-Abrams
1
Saya percaya bahwa pertanyaan ini telah dijawab dengan benar di sini: unix.stackexchange.com/a/2869
shellster

Jawaban:

20

Ini akan jauh lebih mudah dengan SFTP, yang merupakan ekstensi untuk SSH yang mendukung operasi file yang lebih kompleks daripada SCP. Hampir semua distribusi Unix dan Linux modern mendukungnya. Untuk menggunakannya, jalankan saja perintah ini untuk terhubung ke server:

sftp server

Kemudian Anda dapat menggunakan lsdan cdperintah untuk menelusuri dan menemukan file yang Anda cari. Setelah Anda menemukannya, gunakan getperintah untuk mengunduhnya. Misalnya, untuk mengunduh file.txtdi direktori kerja Anda saat ini di server ke direktori kerja Anda saat ini di mesin lokal Anda, jalankan saja:

get file.txt

Untuk mengunduh /home/pavpanchekha/textfiles/file.txtdi server ke ~/textfiles/mesin lokal Anda, jalankan:

get /home/pavpanchekha/textfiles/file.txt ~/textfiles/

Sebaliknya, Anda juga dapat mengunggah file dengan cara ini. Untuk mengunggah file.txtdari direktori kerja lokal saat ini ke direktori server saat ini, ketik:

put file.txt

Anda juga dapat menggunakan jalur lengkap untuk masing-masing seperti yang Anda bisa dengan get:

put ~/textfiles/file.txt /home/pavpanchekha/textfiles/file.txt

Untuk daftar lengkap perintah SFTP yang tersedia, jalankan saja helppada sftp>prompt.

Tambalan
sumber
1
Ini keren, terima kasih. Apakah ada cara untuk meluncurkan satu secara terbalik jika saya sudah menggunakan koneksi SSH? Kalau tidak, saya menemukan diri saya ssh'ing di suatu tempat, menyadari bahwa saya ingin mentransfer file, berhenti dari koneksi SSH, membuat koneksi SFTP, berhenti itu, dan kembali ke SSH.
pavpanchekha
2
@ pav: SSH_CLIENTVariabel lingkungan berisi alamat IP host penghubung di antara informasi lainnya. Anda dapat menggunakannya untuk membuat alias shell dengan mudah SFTP kembali ke host asal. Cukup tambahkan baris ini ~/.bashrcdi server: alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')" Kemudian putuskan dan sambungkan kembali dari SSH sehingga perubahan berlaku, atau jalankan seolah-olah itu adalah perintah sehingga segera berlaku. Dari sana, Anda bisa lari sftpbackke SFTP kembali ke klien yang Anda hubungkan, terlepas dari mana itu.
Tambalan
Ini yang terbaik !!! Terima kasih telah menyelamatkan saya dari NANO (mengedit file online) itu membuat prosesnya sangat sederhana.
Mohsin
0

Manajer file konsol Midnight Commander (mc) memiliki sistem VFS yang memungkinkan koneksi SFTP / pengelolaan file ke server jauh. Ini juga berjalan di Cygwin pada Windows. Antarmuka default menunjukkan dua panel independen; kita bisa membuka direktori jarak jauh SFTP di salah satunya dan mentransfer file ke / dari panel lain dengan mudah. Termasuk editor file / penampil (mcedit) dengan penyorotan sintaksis.

Fjor
sumber