Bagaimana saya bisa mengunduh file dari sesi SSH (tanpa menggunakan sftp)

2

Saya tahu saya bisa menggunakan sftp user @ host ....

Tapi yang saya inginkan adalah mengunduh file dari sesi yang ada.

itu adalah.

ssh user @ host ... lakukan pekerjaan ...

Masalah utama yang saya miliki adalah bahwa file tersebut di bawah root pada server sehingga melakukan perintah sftp tidak sesederhana itu.

jorge.vargas
sumber
2
SSH tidak menyediakan fasilitas pengunduhan yang dapat Anda gunakan dalam sesi interaktif, kecuali tangkapan layar, tetapi Anda dapat menggunakannya scp seperti yang dijelaskan di bawah ini. "masalah utama" yang Anda gambarkan sangat kabur; tolong jelaskan apa yang Anda coba lakukan dan kesalahan apa yang Anda dapatkan. perintah yang tepat akan membantu.
quack quixote

Jawaban:

4

Cara Anda menggambarkannya sepertinya masalah Anda adalah bahwa Anda tidak dapat masuk sebagai root melalui ssh (mungkin Anda menggunakan semacam su atau sudo untuk bekerja sebagai root).

  • Jika root pada prinsipnya dapat login melalui ssh, tetapi Anda tidak tahu kata sandinya, Anda dapat mengatur akun root untuk mengizinkan otentikasi kunci publik dengan kunci Anda.
  • Jika itu tidak mungkin, salin file itu ke folder yang dapat diakses oleh akun yang Anda masuki (seperti akun Anda $HOME folder), mungkin sesuaikan izin dan salin sebagai pengguna dengan sftp atau scp.
Benjamin Bannier
sumber
Juga, jika Anda login dan entah bagaimana dapat melihat file itu dari jarak jauh, tidak bisakah Anda hanya menyalinnya ke / tmp sementara, lalu scp (atau sftp) ke bawah?
Michael H.
@khedron tergantung pada file /tmp mungkin sedikit terlalu kelihatan, tapi itu sulit untuk diceritakan dari pertanyaan
Benjamin Bannier
1

Sudahkah Anda mencoba scp ? Sebagai contoh:

scp user@host:/path/to/remote-file .
akid
sumber
1

Saya tidak tahu mengapa itu harus sesi yang sama, tetapi jika Anda menggunakan ControlMaster dan ControlPath di ~ / .ssh / config Anda tidak perlu mengotorisasi koneksi scp Anda karena multiplexes dalam koneksi yang sama. Ini juga mempercepat koneksi Anda yang Anda lakukan ke host yang sama.

Lihatlah http://www.linux.com/archive/feed/54498 tentang cara mengaturnya.

Jimmy Hedman
sumber
0

Anda tidak dapat mengunduh "melalui" sesi yang ada.

scp dan sftp bekerja dengan membuat sesi baru dan berbicara dengan executable di ujung lain yang berjalan di tempat shell.

Masalah utama yang saya miliki adalah bahwa file tersebut di bawah root pada server sehingga melakukan perintah sftp tidak sesederhana itu.

Anda masuk ke server jarak jauh. Saya kira Anda bisa mendapatkan file ini di bawah akun non-root Anda. Begitu, scp harus bekerja. Pengguna yang Anda tentukan di bawah scp dapat mencapai segalanya seolah-olah Anda sudah masuk.

Jika Anda perlu sudo atau su untuk sampai ke file ini pada sistem remote, hal yang tepat untuk dilakukan adalah menyalinnya ke direktori home pengguna normal Anda, chmod jadi pengguna normal Anda memiliki dan dapat membacanya, lalu mendapatkannya scp, dll. Jika file tersebut sangat besar, chmod file langsung sementara tanpa membuat salinan.

Hal lain yang dapat Anda coba - Jika Anda berlari milikmu Server SSH di rumah atau di mana saja, dan itu dapat dijangkau dari server SSH jarak jauh yang Anda masuki, dapat Anda gunakan scp untuk mengirimnya dari sesi jarak jauh Anda ke sistem lokal Anda.

LawrenceC
sumber
0

Cara saya akan melakukan apa yang Anda minta adalah untuk mengaktifkan sesi logging pada klien ssh Anda (Cara untuk melakukan ini berbeda-beda. Tergantung pada file yang Anda bisa lepaskan hanya dengan menetapkan buffer scrollback besar.), Dan kemudian base64 encode file dan blit ke terminal Anda. : D

Anda kemudian dapat memotong bit asing dari kedua ujung log dan base64 decode kembali ke file asli Anda.

Sebagai contoh:

base64 < file.to.transfer

Dan kemudian, di sisi klien:

base64 -d < trimmed.log.file > destination.file

Beberapa program klien memiliki metode bawaan untuk melakukan hal yang hampir sama dengan, katakanlah, protokol XMODEM atau serupa, tetapi ketersediaan perangkat lunak transmisi di sisi server mungkin akan jauh lebih sedikit daripada untuk base64, yang termasuk dalam sebagian besar distro Linux yang saya gunakan baru-baru ini. Jika Anda memiliki klien yang mendukungnya, maka fase chopping dan decoding akan ditangani secara otomatis, yang nyaman untuk file besar. Saya tidak tahu bahwa ada yang benar-benar menggunakannya sejak zaman BBS telnet, semoga beruntung.

Perkins
sumber