SSH를 통해 입력을 클립보드에 복사하시겠습니까?

SSH를 통해 입력을 클립보드에 복사하시겠습니까?

내 사용 사례는 다음과 같습니다.

  • 저는 작업을 위해 다른 컴퓨터에 SSH로 접속하는 경우가 많으며, 예제를 작성하고 텍스트를 공유하기 위해 서버의 문서/텍스트를 복사하여 로컬로 실행되는 편집기에 붙여넣어야 하는 경우가 많습니다.
  • 일반적으로 텍스트가 충분히 작으면 터미널 프로그램(현재 gnome-terminal)의 출력을 복사하여 붙여넣습니다.
  • 그러나 문서 전체에 관해서는 제가 선택할 수 있는 옵션이 매우 제한되어 있습니다. 문서를 블록별로 복사하거나 scp로컬 컴퓨터에 복사할 수 있습니다.

예를 들어 원격 장치를 로컬 X 서버의 클립보드에 xclip복사할 수 있는 프로그램을 사용할 수 있는 방법이 있습니까 ? stdin일부 효과:

cat myconffile.conf | sed {...} | copy-over-ssh-to-local-clipboard

정말 좋을 거예요. 이것을 가능하게 할 수 있는 것이 있나요?

답변1

X 전달을 사용하여 SSH를 실행하는 경우 이는 투명합니다. 원격 명령(포함 xclip)은 X 서버(키보드 포함)에 액세스할 수 있습니다. 귀하와 서버 모두에 둘 다 있는지 확인하십시오 ForwardX11 yes(배포판에 따라 이러한 옵션은 기본적으로 켜져 있거나 꺼져 있을 수 있습니다).~/.ssh/configX11Forwarding yessshd_config

<myconffile.conf sed {...} | xclip -i

다음을 사용하여 로컬 컴퓨터에 원격 디렉터리를 마운트하는 등 원격 파일을 작업하는 더 편리한 다른 방법이 있습니다.SSHFS, 또는 Emacs에서 원격 파일을 엽니다.도보 여행가. SSH가 있고퓨즈SSHfs를 설정하고 설치합니다 mkdir ~/net/myserver; sshfs myserver:/ ~/net/myserver. SSHfs는 .ssh를 설정하고 Emacs를 설치한 경우 Tramp를 켜는 것만큼 쉽습니다 /myserver:/path/to/file.

답변2

xclip이제 작업이 끝났 stdin으므로 특별한 것이 필요하지 않습니다.

ssh remotehost xclip < myconf.conf

왜 수정해야 합니까 sed? ssh터미널로 사용되지 않을 때 데이터에 투명하며 다음과 같은 파이프라인에서 자주 사용됩니다.

tar cfz - somedir | ssh remotehost 'cd destdir; tar xfz -'`

답변3

로컬 컴퓨터의 OSX에서 수행하는 방법은 다음과 같습니다.

ssh remotehost.com "<some/file.txt" | pbcopy

답변4

@d-raev 및 @william-casarin의 솔루션과 매우 유사하지만 다르기 때문에 나에게 도움이 된 방법을 공유하고 있습니다.

주문하다

ssh user@host "cat <myconffile.conf" | xclip -sel clip

설명하다

이는 보안 터널을 생성하고 @or ssh에 로그인한 다음 to 의 내용을 인쇄 한 다음 로컬 컴퓨터로 파이프하는 명령을 실행하여 내용을 로컬 컴퓨터의 클립보드에 넣는 데 사용됩니다 .userhostipcat<myconffile.confstdoutxclip -sel clip<myconffile.conf

실제 사례 사용

저는 이 명령 구조를 사용하여 Ubuntu 16.04 및 18.04에서 Bash를 사용하여 ssh 키를 github에 붙여넣는 등의 작업을 수행합니다(명령 실행 후 간단한 ctrl-V 또는 붙여넣기 선택 허용). 동작 및 옵션 세부정보를 보려면 man ssh, man cat및 를 확인하세요 .man xclip

관련 정보