Cách gửi dữ liệu vào bảng tạm cục bộ từ phiên SSH từ xa


161

Câu hỏi Borderline ServerFault, nhưng tôi đang lập trình một số tập lệnh shell, vì vậy tôi đang thử ở đây trước :)

Hầu hết các * nixes đều có một lệnh sẽ cho phép bạn dẫn / chuyển hướng đầu ra sang bảng tạm / bảng cục bộ và truy xuất từ ​​cùng. Trên OS X, các lệnh này là

pbcopy, pbpaste 

Có cách nào để sao chép chức năng này trong khi SSH vào một máy chủ khác không? Đó là,

  1. Tôi đang sử dụng máy tính A.
  2. Tôi mở một cửa sổ đầu cuối
  3. Tôi SSH tới máy tính B
  4. Tôi chạy một lệnh trên Máy tính B
  5. Đầu ra của Máy tính B được chuyển hướng hoặc tự động sao chép vào bảng tạm của Máy tính A.

Và vâng, tôi biết rằng tôi chỉ có thể (rùng mình) sử dụng chuột để chọn văn bản từ lệnh, nhưng tôi đã quen với quy trình đưa đầu ra trực tiếp vào bảng tạm mà tôi muốn tương tự cho các phiên từ xa của mình.

Mã là hữu ích, nhưng cách tiếp cận chung cũng được đánh giá cao.

Câu trả lời:


89

Tôi đang hồi sinh chủ đề này bởi vì tôi đang tìm kiếm cùng một loại giải pháp và tôi đã tìm thấy một giải pháp phù hợp với mình. Đó là một sửa đổi nhỏ cho một đề xuất từ OSX Daily .

Trong trường hợp của tôi, tôi sử dụng Terminal trên máy OSX cục bộ của mình để kết nối với máy chủ linux thông qua SSH. Giống như OP, tôi muốn có thể chuyển các đoạn văn bản nhỏ từ thiết bị đầu cuối sang bảng tạm cục bộ của mình, chỉ sử dụng bàn phím.

Bản chất của giải pháp:

commandThatMakesOutput | ssh desktop pbcopy

Khi chạy trong phiên ssh tới máy tính từ xa, lệnh này sẽ nhận đầu ra của lệnhThatMakesOutput (ví dụ: ls, pwd) và chuyển đầu ra vào bảng tạm của máy tính cục bộ (tên hoặc IP của "máy tính để bàn"). Nói cách khác, nó sử dụng ssh lồng nhau: bạn được kết nối với máy tính từ xa thông qua một phiên ssh, bạn thực thi lệnh ở đó và máy tính từ xa kết nối với máy tính để bàn của bạn thông qua một phiên ssh khác và đặt văn bản vào khay nhớ tạm của bạn.

Nó yêu cầu máy tính để bàn của bạn được cấu hình như một máy chủ ssh (mà tôi để lại cho bạn và google). Sẽ dễ dàng hơn nhiều nếu bạn đã thiết lập các khóa ssh để tạo điều kiện cho việc sử dụng ssh nhanh, tốt nhất là sử dụng cụm mật khẩu mỗi phiên hoặc bất cứ điều gì bạn cần bảo mật.

Những ví dụ khác:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

Để thuận tiện, tôi đã tạo một tệp bash để rút ngắn văn bản cần thiết sau đường ống:

#!/bin/bash
ssh desktop pbcopy

Trong trường hợp của tôi, tôi đang sử dụng một khóa có tên đặc biệt

Tôi đã lưu nó với tên tệp cb (mnemonic của tôi (ClipBoard). Đặt đoạn script ở đâu đó trong đường dẫn của bạn, làm cho nó có thể thực thi được và voila:

ls | cb

3
Tôi thường để điều này trong vim. Để làm như vậy, chọn những gì bạn muốn sao chép trong chế độ trực quan, sau đó nhập::'<,'>w !ssh desktop pbcopy
Mike Brennan

@MikeBrennan Khi bạn đã chọn văn bản, tại sao bạn không nhấn cmd + C (hoặc bất kỳ khóa sao chép nào bạn đã đặt)? ...
Petr Peller

36
Như thế này, nó chỉ thực sự hoạt động khi máy tính để bàn của bạn có IP tĩnh và có thể truy cập được từ hộp bạn ssh'd vào. Đó không bao giờ là trường hợp đối với tôi.
kqw

6
Không phải cách khác sẽ dễ dàng hơn sao? ssh user @ remote 'lệnhThatMakesOutput' | pbcopy
rulio

Tôi cần -e nonecờ ssh được mô tả ở đây: unix.stackexchange.com/questions/210615/iêu
Pat Myron

122

Cách yêu thích của tôi là ssh [remote-machine] "cat log.txt" | xclip -selection c. Điều này hữu ích nhất khi bạn không muốn (hoặc không thể) ssh từ xa đến địa phương.

Chỉnh sửa: trên Cygwin ssh [remote-machine] "cat log.txt" > /dev/clipboard.

Chỉnh sửa: Một nhận xét hữu ích từ nbren12:

Hầu như luôn luôn có thể thiết lập kết nối ssh ngược bằng cách sử dụng chuyển tiếp cổng SSH. Chỉ cần thêm RemoteForward 127.0.0.1:2222 127.0.0.1:22vào mục nhập của máy chủ trong cục bộ của bạn .ssh/config, sau đó thực thi ssh -p 2222 127.0.0.1trên máy từ xa, sau đó sẽ chuyển hướng kết nối đến máy cục bộ. - nbren12


6
+1: Dễ dàng hơn nhiều so với các giải pháp khác khi không thể kết nối SSH ngược!
John Dibling

9
Bạn xứng đáng được nhiều lượt thích hơn cho giải pháp cực kỳ đơn giản đó!
Kamil Dziedzic

31
Đối với những người trong chúng tôi trên Mac OSX,ssh [remote-machine] "cat log.txt" | pbcopy
chowey

1
Theo báo cáo này đây , tôi đã sử dụng catđể có được điều này để làm việc trên Cygwin Windows 8: ssh [remote-machine] "cat log.txt" | cat > /dev/clipboard(tất nhiên, lệnh từ xa của tôi là không cat, nó là cái gì khác bên trong một máy ảo lang thang vì vậy tôi thực sự ran vagrant ssh -c "command" | cat > /dev/clipboard)
tiby

7
Đó là hầu như luôn luôn có thể thiết lập một kết nối ssh ngược sử dụng cổng SSH chuyển tiếp. Chỉ cần thêm RemoteForward 127.0.0.1:2222 127.0.0.1:22vào mục nhập máy chủ trong cục bộ của bạn .ssh/config, sau đó thực thi ssh -p 2222 127.0.0.1trên máy từ xa, sau đó sẽ chuyển hướng kết nối đến máy cục bộ.
nbren12

30

Tìm thấy một giải pháp tuyệt vời mà không cần kết nối ssh ngược!

Bạn có thể sử dụng xclip trên máy chủ từ xa, cùng với chuyển tiếp ssh X11 & XQuartz trên hệ thống OSX.

Để thiết lập điều này:

  1. Cài đặt XQuartz (Tôi đã làm điều này với công thức solo + pivotal_workstation :: xquartz , nhưng bạn không phải làm vậy)
  2. Chạy XQuartz.app
  3. Mở Tùy chọn XQuartz ( kb_command+ ,)
  4. Hãy chắc chắn rằng "Kích hoạt tính năng đồng bộ hóa""Cập nhật các tông đựng khi thay đổi Clipboard" được kiểm tra Ví dụ về cửa sổ Tùy chọn XQuartz
  5. ssh -X remote-host "echo 'hello from remote-host' | xclip -selection clipboard"

1
Làm thế nào là khác nhau từ ssh remote-host "echo 'hello from remote-host' | pbcopy? Đây sẽ là một câu trả lời tuyệt vời nếu nó hoạt động như thế này: ssh -X remote-hostsau đó trên máy chủ từ xa:echo 'hello from remote-host' | xclip -selection clipboard
kqw

5
@KasperSouren. Tôi tin rằng nó hoạt động như bạn đang hy vọng. `| xclip` nằm trong dấu ngoặc kép.
gdw2

1
Trong năm 2016, đây rõ ràng là giải pháp tốt nhất, không rườm rà. Quên các giải pháp khác, dựa trên ssh ngược.
shivams

1
Có cách nào để làm điều này không chỉ là một lệnh? Tôi muốn đăng nhập vào máy chủ từ xa của mình trong một phiên tương tác qua ssh và sau đó có thể tùy ý gửi đến bảng tạm cục bộ của tôi. Có yêu cầu ssh ngược?
Kvass

2
@Kvass: Miễn là bạn đang sử dụng -Xcho X11 Chuyển tiếp qua SSH, các chương trình X11 sẽ có thể cập nhật bảng tạm của bạn thông qua cài đặt XQuartz ở trên. Lệnh một lần là để chứng minh rằng việc gửi một cái gì đó qua echobảng tạm của máy chủ từ xa thông qua xclipkhông hoạt động & nên đồng bộ hóa với máy chủ máy khách SSH cục bộ của bạn. Lưu ý như @ gdw2 nói, "Bên | xcliptrong dấu ngoặc kép". Như vậy, nó sẽ thực thi như một lệnh trên máy chủ từ xa để gửi một cái gì đó đến clipboard của nó.
TrinitronX

18

Cổng đường hầm ngược trên máy chủ ssh

Tất cả các giải pháp hiện có hoặc cần:

  • X11 trên máy khách (nếu bạn có nó, xcliptrên máy chủ hoạt động rất tốt) hoặc
  • máy khách và máy chủ ở cùng một mạng (không phải là trường hợp nếu bạn đang làm việc cố gắng truy cập vào máy tính ở nhà của bạn).

Đây là một cách khác để làm điều đó, mặc dù bạn sẽ cần sửa đổi cách bạn ssh vào máy tính của bạn.

Tôi đã bắt đầu sử dụng cái này và nó không ở đâu đáng sợ như vẻ ngoài của nó vì vậy hãy thử xem.

Máy khách (khởi động phiên ssh)

ssh username@server.com -R 2000:localhost:2000

(gợi ý: làm cho nó trở thành một keybinding để bạn không phải gõ nó)

Máy khách (tab khác)

nc -l 2000 | pbcopy

Lưu ý: nếu bạn không có pbcopythì chỉ cần teemột tệp.

Máy chủ (bên trong phiên SSH)

cat some_useful_content.txt | nc localhost 2000

Ghi chú khác

Trên thực tế ngay cả khi bạn đang ở giữa một phiên ssh, vẫn có cách để bắt đầu một đường hầm nhưng tôi không muốn làm mọi người sợ hãi về những gì thực sự không tệ như vẻ ngoài của nó. Nhưng tôi sẽ thêm các chi tiết sau nếu tôi thấy bất kỳ sự quan tâm


1
+1 - đó là khá gọn gàng. Tuy nhiên - cat some_useful_content.txt | nc localhost 2000lệnh dường như bị treo khi tôi làm điều này. Tôi cần phải ctr-c theo cách thủ công để ngăn chặn nó và chỉ sau đó nội dung mới được đưa vào clip / bảng điều khiển của khách hàng của tôi
Alan Storm

1
Nó sẽ đợi cho đến khi ai đó xử lý dữ liệu ở đầu kia.
Sridhar Sarnobat

Thật ra tôi nghĩ tôi đã hiểu nhầm câu hỏi của bạn. Tôi không chắc tại sao điều đó xảy ra.
Sridhar Sarnobat

nc -l -plàm việc cho tôi, nhưng nc -lkhông. Và tôi cũng có vấn đề về @AlanStorm.
HappyFace

1
Tôi đã giải quyết vấn đề treo netcat bằng cách chỉ định -c. Tôi sử dụng GNU netcat được cài đặt bởi brew.
HappyFace

7

Có nhiều công cụ khác nhau để truy cập các lựa chọn X11, bao gồm xclipXSel . Lưu ý rằng X11 theo truyền thống có nhiều lựa chọn và hầu hết các chương trình đều có một số hiểu biết về cả bảng tạm và lựa chọn chính (không giống nhau). Emacs cũng có thể hoạt động với lựa chọn thứ cấp, nhưng điều đó rất hiếm và không ai thực sự biết phải làm gì với bộ đệm bị cắt ...

$ xclip-trợ giúp
Cách sử dụng: xclip [TÙY CHỌN] [TẬP TIN] ...
Truy cập lựa chọn máy chủ X để đọc hoặc viết.

  -i, -in đọc văn bản vào lựa chọn X từ đầu vào hoặc tệp tiêu chuẩn
                   (mặc định)
  -o, -out in lựa chọn ra tiêu chuẩn (thường cho
                   đường ống đến một tập tin hoặc chương trình)
  -l, -loops số lượng yêu cầu lựa chọn để chờ đợi trước khi thoát
  -d, -display X hiển thị để kết nối với (ví dụ localhost: 0 ")
  -h, -hỗ trợ thông tin
      -Chọn lựa chọn để truy cập ("chính", "phụ", "bảng tạm" hoặc "cắt đệm")
      -noutf8 không coi văn bản là utf-8, sử dụng unicode cũ
      thông tin phiên bản chuyển đổi
      chỉ lỗi -silent, chạy trong nền (mặc định)
      -quiet chạy ở phía trước, hiển thị những gì đang xảy ra
      -verbose chạy bình luận

Báo cáo lỗi cho <astrand@lysator.liu.se>
$ xsel-trợ giúp
Cách sử dụng: xsel [tùy chọn]
Thao tác lựa chọn X.

Theo mặc định, lựa chọn hiện tại là đầu ra và không được sửa đổi nếu cả hai
đầu vào tiêu chuẩn và đầu ra tiêu chuẩn là thiết bị đầu cuối (ttys). Nếu không thì,
lựa chọn hiện tại là đầu ra nếu đầu ra tiêu chuẩn không phải là thiết bị đầu cuối
(tty) và lựa chọn được đặt từ đầu vào tiêu chuẩn nếu đầu vào tiêu chuẩn
không phải là một thiết bị đầu cuối (tty). Nếu bất kỳ tùy chọn đầu vào hoặc đầu ra được đưa ra thì
chương trình chỉ hoạt động trong chế độ được yêu cầu.

Nếu cả đầu vào và đầu ra là bắt buộc thì lựa chọn trước đó là
đầu ra trước khi được thay thế bởi nội dung của đầu vào tiêu chuẩn.

Tùy chọn đầu vào
  -a, --append Nối đầu vào tiêu chuẩn vào vùng chọn
  -f, --follow Nối vào lựa chọn khi tăng đầu vào tiêu chuẩn
  -i, --input Đọc đầu vào tiêu chuẩn vào vùng chọn

Tùy chọn đầu ra
  -o, --output Viết lựa chọn vào đầu ra tiêu chuẩn

Tùy chọn hành động
  -c, - Xóa Xóa lựa chọn
  -d, --delete Yêu cầu xóa lựa chọn và rằng
                        ứng dụng sở hữu nó xóa nội dung của nó

Lựa chọn lựa chọn
  -p, --primary Hoạt động trên lựa chọn CHÍNH (mặc định)
  -s, - Hoạt động thứ hai trên lựa chọn THỨ HAI
  -b, --clipboard Hoạt động trên lựa chọn CLIPBOARD

  -k, --keep Không sửa đổi các lựa chọn, nhưng thực hiện CHÍNH
                        và lựa chọn THỨ HAI vẫn tồn tại ngay cả sau khi
                        chương trình họ đã được chọn trong lối ra.
  -x, - Trao đổi trao đổi các lựa chọn CHÍNH và THỨ HAI

Tùy chọn X
  - hiển thị tên hiển thị
                        Chỉ định kết nối đến máy chủ X
  -t ms, --selectionTimeout ms
                        Chỉ định thời gian chờ tính bằng mili giây trong đó
                        lựa chọn phải được lấy. Giá trị 0 (không)
                        chỉ định không có thời gian chờ (mặc định)

Sự lựa chọn hỗn hợp
  -l, --logfile Chỉ định tệp để ghi nhật ký lỗi khi tách ra.
  -n, --nodetach Không tách khỏi thiết bị đầu cuối kiểm soát. Không có
                        tùy chọn này, xsel sẽ rẽ nhánh để trở thành một nền tảng
                        xử lý trong các chế độ đầu vào, trao đổi và giữ.

  -h, --help Hiển thị trợ giúp này và thoát
  -v, --verbose In tin nhắn thông tin
  --version Thông tin phiên bản đầu ra và thoát

Vui lòng báo cáo lỗi đến <conrad@vergenet.net>.

Nói tóm lại, bạn nên thử xclip -i/ xclip -ohoặc xclip -i -sel clip/ xclip -o -sel cliphoặc xsel -i/ xsel -ohoặc xsel -i -b/ xsel -o -b, tùy thuộc vào những gì bạn muốn.


4
Để thêm vào bài đăng của @ephemient: Để sử dụng xclip & xsel với máy chủ từ xa, bạn có thể sử dụng Chuyển tiếp X11 như vậy : ssh -C -X user@remote-host. Nếu chạy xclip ở phía từ xa dường như không hoạt động, hãy đảm bảo X11Forwarding yesđược đặt trong /etc/ssh/sshd_configtệp từ xa . Cũng đảm bảo xauthđược cài đặt ở phía xa. Đối với một máy không đầu, bạn có thể cài đặt xauthxvfb.
TrinitronX

Đây là một mô tả với các chi tiết bổ sung cộng với các ràng buộc khóa vim.
Tim Bunce

1
@TrinitronX oh wow - đập đầu tôi vào tường, cảm ơn vì đã xvfbđề cập. Tôi đang chạy một máy chủ không đầu, vì vậy X11 không được chạy!
Cam

5

Đây là giải pháp của tôi dựa trên đường hầm đảo ngược SSH, netcat và xclip.

Đầu tiên tạo tập lệnh (ví dụ: clipboard-daemon.sh) trên máy trạm của bạn:

#!/bin/bash
HOST=127.0.0.1
PORT=3333

NUM=`netstat -tlpn 2>/dev/null | grep -c " ${HOST}:${PORT} "`
if [ $NUM -gt 0 ]; then
    exit
fi

while [ true ]; do
    nc -l ${HOST} ${PORT} | xclip -selection clipboard
done

và bắt đầu nó trong nền.

./clipboard-daemon.sh&

Nó sẽ bắt đầu nc đường ống đầu ra cho xclip và quá trình hồi sinh sau khi nhận được một phần dữ liệu

Sau đó bắt đầu kết nối ssh đến máy chủ từ xa:

ssh user@host -R127.0.0.1:3333:127.0.0.1:3333

Trong khi đăng nhập vào hộp từ xa, hãy thử điều này:

echo "this is test" >/dev/tcp/127.0.0.1/3333

sau đó thử dán vào máy trạm của bạn

Tất nhiên bạn có thể viết kịch bản trình bao bọc bắt đầu clipboard-daemon.sh trước và sau đó là phiên ssh. Đây là cách nó làm việc cho tôi. Thưởng thức.


Giải pháp này là giải pháp tốt nhất cho tôi. nó không quá phức tạp và hoạt động đúng.
Marcel Valdez Orozco

Giải pháp tốt nhất theo ý kiến ​​của tôi. Bạn không phải lo lắng về việc cho phép kết nối ssh ngược có ý nghĩa bảo mật và vòng lặp vô hạn là một liên lạc tốt đẹp.
R. Taukulis

4

Không phải là một lớp lót, nhưng không yêu cầu thêm ssh .

  • cài đặt netcatnếu cần thiết
  • sử dụng termbin : cat ~/some_file.txt | nc termbin.com 9999. Điều này sẽ sao chép đầu ra vào termbintrang web và in URL sang đầu ra của bạn.
  • truy cập url đó từ máy tính của bạn, bạn nhận được đầu ra của bạn

Tất nhiên, không sử dụng nó cho nội dung nhạy cảm.


Wow đó là một giải pháp rất sáng tạo.
Sridhar Sarnobat

3

Câu trả lời này phát triển cả khi câu trả lời được chọn bằng cách thêm bảo mật.

Câu trả lời đó đã thảo luận về hình thức chung

<command that makes output> | \
    ssh <user A>@<host A> <command that maps stdin to clipboard>

Nơi an ninh có thể thiếu là trong sshđiều khoản cho phép <user B>trên host B>để sshvào host Avà thực hiện bất kỳ lệnh.

Tất nhiên Bđể Atruy cập có thể đã được kiểm soát bởi một sshkhóa và thậm chí nó có thể có mật khẩu. Nhưng một lớp bảo mật khác có thể hạn chế phạm vi của các lệnh được phép Bcó thể thực thi trên A, ví dụ như vậy rm -rf /không thể được gọi. (Điều này đặc biệt quan trọng khi sshkhóa không có mật khẩu.)

May mắn thay, sshcó một tính năng tích hợp được gọi là hạn chế lệnh hoặc lệnh bắt buộc . Xem ssh.com , hoặc câu hỏi serverfault.com này .

Giải pháp dưới đây cho thấy giải pháp biểu mẫu chung cùng với ssh hạn chế lệnh được thi hành.

Giải pháp ví dụ với giới hạn lệnh được thêm vào

Giải pháp nâng cao bảo mật này tuân theo hình thức chung - cuộc gọi từ sshphiên trên host-Bchỉ đơn giản là:

cat <file> | ssh <user-A>@<host A> to_clipboard

Phần còn lại của chương trình này cho thấy thiết lập để làm việc đó.

Thiết lập hạn chế lệnh ssh

Giả sử tài khoản người dùng trên Buser-Bvà B có khóa ssh id-clip, đã được tạo theo cách thông thường ( ssh-keygen).

Sau đó trong user-Athư mục ssh có một tập tin

/home/user-A/.ssh/authorized_keys

nhận ra khóa id-clipvà cho phép sshkết nối.

Thông thường nội dung của mỗi dòng authorized_keyschính xác là khóa công khai được ủy quyền, ví dụ: nội dung của id-clip.pub.

Tuy nhiên, để thực thi hạn chế lệnh , nội dung khóa chung được thêm vào (trên cùng một dòng) bởi lệnh sẽ được thực thi.
Trong trường hợp của chúng ta:

command="/home/user-A/.ssh/allowed-commands.sh id-clip",no-agent-forwarding,no-port-forwarding,no-user-rc,no-x11-forwarding,no-pty <content of file id-clip.pub>

Lệnh được chỉ định "/home/user-A/.ssh/allowed-commands.sh id-clip"chỉ lệnh được chỉ định đó được thực thi bất cứ khi nào khóa id-clipđược sử dụng bắt đầu một sshkết nối đến host-A- bất kể lệnh nào được viết sshdòng lệnh .

Lệnh chỉ ra tệp tập lệnh allowed-commands.shvà nội dung của tệp tập lệnh đó là

#/bin/bash
#
# You can have only one forced command in ~/.ssh/authorized_keys. Use this
# wrapper to allow several commands.

Id=${1}

case "$SSH_ORIGINAL_COMMAND" in
    "to-clipboard")
          notify-send "ssh to-clipboard, from ${Id}"
        cat | xsel --display :0 -i -b
          ;;
    *)
        echo "Access denied"
        exit 1
        ;;
esac

Cuộc gọi ban đầu đến sshmáy B

... | ssh <user-A>@<host A> to_clipboard

Chuỗi to-clipboardđược truyền đến allowed-commands.shbởi biến môi trường SSH_ORIGINAL_COMMAND. Ngoài ra, chúng tôi đã chuyển tên của khóa id-clip, từ dòng authorized_keyschỉ được truy cập bởi id-clip.

Dòng

          notify-send "ssh to-clipboard, from ${Id}"

chỉ là một hộp thông báo bật lên để cho bạn biết bảng ghi tạm đang được viết - đó có lẽ cũng là một tính năng bảo mật tốt. ( notify-sendhoạt động trên Ubuntu 18.04, có thể không phải là người khác).

Trong dòng

cat | xsel --display :0 -i -b

tham số --display :0này là cần thiết bởi vì quá trình không có màn hình X riêng với bảng tạm, do đó nó phải được cụ thể hóa rõ ràng. Giá trị này :0xảy ra để hoạt động trên Ubuntu 18.04 với máy chủ cửa sổ Wayland. Trên các thiết lập khác, nó có thể không hoạt động. Đối với một máy chủ X tiêu chuẩn , câu trả lời này có thể giúp ích.

host-A /etc/ssh/sshd_config thông số

Cuối cùng, một vài tham số trong /etc/ssh/sshd_configmáy chủ Anên được đặt để đảm bảo quyền kết nối và quyền chỉ sử dụng ssh-key mà không cần mật khẩu:

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
AllowUsers user-A

Để làm cho sshdmáy chủ đọc lại cấu hình

sudo systemctl restart sshd.service

hoặc là

sudo service sshd.service restart

phần kết luận

Đó là một số nỗ lực để thiết lập nó, nhưng các chức năng khác ngoài việc to-clipboardcó thể được xây dựng song song cùng một khung.


1
Xsel với remoteforwarding là câu trả lời duy nhất phù hợp với tôi trên Ubuntu 18.04 chạy i3 cục bộ. Không cần chuyển tiếp X11.
Jay Stanley


2

Giải pháp đơn giản nhất, nếu bạn đang sử dụng OS X bằng Terminal và bạn đã tìm kiếm trong một máy chủ từ xa và muốn lấy kết quả của tệp văn bản hoặc nhật ký hoặc csv, chỉ cần:

1) Cmd-Kđể xóa đầu ra của thiết bị đầu cuối

2) cat <filename>để hiển thị nội dung của tập tin

3) Cmd-Sđể lưu Đầu ra Đầu cuối

Bạn sẽ xóa thủ công dòng đầu tiên và dòng cuối cùng của tệp, nhưng phương pháp này đơn giản hơn một chút so với việc dựa vào các gói khác được cài đặt, "đường hầm ngược" và cố gắng có IP tĩnh, v.v.


+1 cho một kỹ thuật hữu ích mà tôi đã sử dụng cho bản thân mình, bit nó buộc bạn phải mất lịch sử thiết bị đầu cuối của mình và (như đã đề cập), vấn đề dòng đầu tiên / cuối cùng hơi khó hiểu.
Alan Storm

Đồng ý @AlanStorm
tw0000 17/07/18

Vấn đề quan trọng hơn với cách tiếp cận này là nó sẽ chỉ lưu số lượng dòng mà bộ đệm đầu cuối của bạn giữ lại. Thường thì đó không phải là vấn đề nhưng nếu bạn đang cố lấy nội dung của tệp nhật ký thì bạn có thể hết dung lượng,
Sridhar Sarnobat

Đó là sự thật @ Sridhar-Sarnobat, nói chung nó không phải là một giải pháp tốt. Tôi chỉ sử dụng scp!
tw0000
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.