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.
Jawaban:
Cara Anda menggambarkannya sepertinya masalah Anda adalah bahwa Anda tidak dapat masuk sebagai root melalui ssh (mungkin Anda menggunakan semacam
su
atausudo
untuk bekerja sebagai root).$HOME
folder), mungkin sesuaikan izin dan salin sebagai pengguna dengansftp
atauscp
.sumber
/tmp
mungkin sedikit terlalu kelihatan, tapi itu sulit untuk diceritakan dari pertanyaanSudahkah Anda mencoba scp ? Sebagai contoh:
sumber
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.
sumber
Anda tidak dapat mengunduh "melalui" sesi yang ada.
scp
dansftp
bekerja dengan membuat sesi baru dan berbicara dengan executable di ujung lain yang berjalan di tempat shell.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 bawahscp
dapat mencapai segalanya seolah-olah Anda sudah masuk.Jika Anda perlu
sudo
atausu
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 mendapatkannyascp
, 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.sumber
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:
Dan kemudian, di sisi klien:
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.
sumber