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:
- Instal XQuartz (Saya melakukan ini dengan resep solois + pivotal_workstation::xquartz, tetapi Anda tidak harus melakukannya)
- Jalankan XQuartz.app
- Buka Preferensi XQuartz ( +
,
) - Pastikan "Aktifkan Sinkronisasi" dan "Perbarui Papan Tulis saat CLIPBOARD berubah" diperiksa
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 jalankanssh -p 2222 127.0.0.1
pada mesin jarak jauh, yang kemudian akan mengalihkan koneksi ke mesin lokal. – nbren12