GNU/Linux >> Belajar Linux >  >> Linux

Cara mengirim data ke clipboard lokal dari sesi SSH jarak jauh

Saya menghidupkan kembali utas ini karena saya telah mencari solusi yang sama, dan saya telah menemukan solusi yang cocok untuk saya. Ini adalah modifikasi kecil dari saran dari OSX Daily.

Dalam kasus saya, saya menggunakan Terminal di mesin OSX lokal saya untuk terhubung ke server linux melalui SSH. Seperti OP, saya ingin dapat mentransfer sedikit teks dari terminal ke clipboard lokal saya, hanya dengan menggunakan keyboard.

Inti dari solusinya:

commandThatMakesOutput | ssh desktop pbcopy

Saat dijalankan dalam sesi ssh ke komputer jarak jauh, perintah ini mengambil output dari commandThatMakesOutput (mis. ls, pwd) dan menyalurkan output ke clipboard komputer lokal (nama atau IP "desktop"). Dengan kata lain, ini menggunakan ssh bersarang:Anda terhubung ke komputer jarak jauh melalui satu sesi ssh, Anda menjalankan perintah di sana, dan komputer jarak jauh terhubung ke desktop Anda melalui sesi ssh yang berbeda dan meletakkan teks ke papan klip Anda.

Ini membutuhkan desktop Anda untuk dikonfigurasi sebagai server ssh (yang saya serahkan kepada Anda dan google). Jauh lebih mudah jika Anda telah menyiapkan kunci ssh untuk memfasilitasi penggunaan ssh yang cepat, lebih disukai menggunakan frasa sandi per sesi, atau apa pun yang dibutuhkan keamanan Anda.

Contoh lain:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

Untuk kenyamanan, saya telah membuat file bash untuk mempersingkat teks yang diperlukan setelah pipa:

#!/bin/bash
ssh desktop pbcopy

Dalam kasus saya, saya menggunakan kunci bernama khusus

Saya menyimpannya dengan nama file cb (mnemonik saya (ClipBoard). Letakkan skrip di suatu tempat di jalur Anda, buat itu dapat dieksekusi dan voila:

ls | cb

Membalikkan port tunnel di server ssh

Semua solusi yang ada membutuhkan:

  • X11 pada klien (jika Anda memilikinya, xclip di server berfungsi dengan baik) atau
  • klien dan server berada di jaringan yang sama (yang tidak terjadi jika Anda sedang bekerja mencoba mengakses komputer di rumah).

Inilah cara lain untuk melakukannya, meskipun Anda harus mengubah cara ssh ke komputer Anda.

Saya sudah mulai menggunakan ini dan sama sekali tidak mengintimidasi seperti kelihatannya, jadi cobalah.

Klien (memulai sesi ssh)

ssh [email protected] -R 2000:localhost:2000

(petunjuk:jadikan ini pengikat kunci sehingga Anda tidak perlu mengetiknya)

Klien (tab lain)

nc -l 2000 | pbcopy

Catatan:jika Anda tidak memiliki pbcopy lalu cukup tee ke file.

Server (di dalam sesi SSH)

cat some_useful_content.txt | nc localhost 2000

Catatan lainnya

Sebenarnya meskipun Anda berada di tengah-tengah sesi ssh, ada cara untuk memulai terowongan tetapi saya tidak ingin menakut-nakuti orang dari apa yang sebenarnya tidak seburuk kelihatannya. Tapi saya akan menambahkan detailnya nanti jika saya melihat ada minat


Menemukan solusi hebat yang tidak memerlukan koneksi ssh balik!

Anda dapat menggunakan xclip pada host jarak jauh, bersama dengan penerusan ssh X11 &XQuartz pada sistem OSX.

Untuk menyiapkan ini:

  1. Instal XQuartz (Saya melakukan ini dengan resep solois + pivotal_workstation::xquartz, tetapi Anda tidak harus melakukannya)
  2. Jalankan XQuartz.app
  3. Buka Preferensi XQuartz ( +, )
  4. Pastikan "Aktifkan Sinkronisasi" dan "Perbarui Papan Tulis saat CLIPBOARD berubah" diperiksa
  5. ssh -X remote-host "echo 'hello from remote-host' | xclip -selection clipboard"

Cara favorit saya adalah ssh [remote-machine] "cat log.txt" | xclip -selection c . Ini sangat berguna saat Anda tidak ingin (atau tidak bisa) melakukan ssh dari jarak jauh ke lokal.

Sunting:di Cygwin ssh [remote-machine] "cat log.txt" > /dev/clipboard .

Sunting:Komentar bermanfaat dari nbren12:

Hampir selalu memungkinkan untuk mengatur koneksi reverse ssh menggunakan penerusan port SSH. Cukup tambahkan RemoteForward 127.0.0.1:2222 127.0.0.1:22 ke entri server di .ssh/config lokal Anda , lalu jalankan ssh -p 2222 127.0.0.1 pada mesin jarak jauh, yang kemudian akan mengalihkan koneksi ke mesin lokal. – nbren12


Linux
  1. Penanganan Ctrl-c Dalam Sesi Ssh?

  2. Bagaimana Menghentikan Sesi SSH Dari Waktu Habis

  3. Bagaimana cara memaksa melepaskan Layar dari sesi SSH lain?

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

  2. Bagaimana cara mengkonfigurasi D-Bus dan SSH X-Forwarding untuk mencegah SSH menggantung saat keluar?

  3. Cara mengambil banyak file dari mesin jarak jauh ke lokal dengan Ansible

  1. Perintah SCP Linux – Cara Transfer File SSH dari Jarak Jauh ke Lokal

  2. Cara SSH di Linux dari Android

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