GNU/Linux >> Belajar Linux >  >> Linux

Ssh – Salin File Kembali Ke Sistem Lokal Dengan Ssh?

Jika saya masuk ke sistem melalui SSH, apakah ada cara untuk menyalin file kembali ke sistem lokal saya tanpa menjalankan terminal atau sesi layar lain dan melakukan scp atau yang serupa atau tanpa melakukan SSH dari sistem jarak jauh kembali ke sistem lokal?

Jawaban yang Diterima:

Koneksi master

Paling mudah jika Anda merencanakannya terlebih dahulu.

Buka koneksi master pertama kali. Untuk koneksi berikutnya, rutekan koneksi slave melalui koneksi master yang ada. Di ~/.ssh/config . Anda , atur pembagian koneksi agar terjadi secara otomatis:

ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r

Jika Anda memulai sesi ssh ke (pengguna, port, mesin) yang sama dengan koneksi yang ada, sesi kedua akan dialihkan ke yang pertama. Membuat koneksi kedua tidak memerlukan autentikasi baru dan sangat cepat.

Jadi saat Anda memiliki koneksi aktif, Anda dapat dengan cepat:

  • salin file dengan scp atau rsync;
  • pasang sistem file jarak jauh dengan sshfs.

Penerusan

Pada koneksi yang ada, Anda dapat membuat terowongan ssh terbalik. Pada baris perintah ssh, buat penerusan jarak jauh dengan meneruskan -R 22042:localhost:22 di mana 22042 adalah nomor yang dipilih secara acak yang berbeda dari nomor port lain pada mesin jarak jauh. Kemudian ssh -p 22042 localhost pada mesin jarak jauh menghubungkan Anda kembali ke mesin sumber; anda dapat menggunakan scp -P 22042 foo localhost: untuk menyalin file.

Anda dapat mengotomatiskan ini lebih lanjut dengan RemoteForward 22042 localhost:22 . Masalahnya adalah jika Anda terhubung ke komputer yang sama dengan beberapa instance ssh, atau jika orang lain menggunakan port tersebut, Anda tidak mendapatkan penerusan.

Jika Anda belum mengaktifkan penerusan jarak jauh dari awal, Anda dapat melakukannya pada sesi ssh yang ada. Ketik Enter ~C Masukkan -R 22042:localhost:22 Masukkan .
Lihat “Escape character” di manual untuk informasi lebih lanjut.

Ada juga beberapa informasi menarik di utas Server Fault ini.

Salin-tempel

Jika filenya kecil, Anda dapat mengetiknya dan menyalin-tempel dari keluaran terminal. Jika file berisi karakter yang tidak dapat dicetak, gunakan pengkodean seperti base64.

remote.example.net$ base64 <myfile
(copy the output)
local.example.net$ base64 -d >myfile
(paste the clipboard contents)
Ctrl+D

Lebih mudahnya, jika Anda mengaktifkan penerusan X, salin file pada mesin jarak jauh dan tempel secara lokal. Anda dapat menyalurkan data masuk dan keluar dari xclip atau xsel . Jika Anda ingin mempertahankan nama file dan metadata, salin-tempel arsip.

remote.example.net$ tar -czf - myfile | xsel

local.example.net$ xsel | tar -xzf -

Linux
  1. Bagaimana Cara Menyalin File Dari Server Jarak Jauh Ke Mesin Lokal?

  2. Salin file dengan SCP dan Rsync

  3. Bagaimana cara scp kembali ke lokal ketika saya sudah melakukan sshed ke mesin jarak jauh?

  1. Pengeditan jarak jauh dengan editor lokal (Linux)

  2. Bagaimana cara menyalin file bernama dimulai dengan titik?

  3. Bisakah saya menggunakan otentikasi kunci SSH untuk masuk ke sistem jarak jauh dengan nama pengguna yang berbeda?

  1. Tingkatkan kinerja sistem Linux dengan noatime

  2. periksa apakah file ada di host jarak jauh dengan ssh

  3. Sistem file terdistribusi dengan cache disk lokal