SSH 세션 내에서 로컬 컴퓨터에 명령을 실행하려면 어떻게 해야 합니까?

SSH 세션 내에서 로컬 컴퓨터에 명령을 실행하려면 어떻게 해야 합니까?

사용 사례 예시:

  1. 저는 Mac OS X() 그리고 내 개발 서버() SSH를 통해.
  2. 현재 편집기에 열려 있는 파일/분기에 대한 GitHub URL을 생성하는 스크립트가 있습니다().
  3. 내 노트북의 브라우저에서 해당 URL을 열고 싶습니다().

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

  • 파일을 저장할 때마다 브라우저 새로 고침
  • 내가 발행할 때 로컬에서 노래를 재생합니다.자식 명령
  • 내가 체크아웃한 지점에 해당하는 Jira 티켓을 엽니다.

답변1

SSH 역터널을 사용할 수 있습니다. 다음과 같이 작동합니다. 여기에서 사용하고 있는 컴퓨터에서 이 작업을 수행하세요. remote_server원격 서버의 이름은 다음과 같습니다.

ssh -R 13000:localhost:22 remote_server

local machine그리고 다음 에서 이미지를 표시합니다 remote server.

ssh <USERNAME>@localhost -p 13000 "DISPLAY=:0 ristretto <IMAGE>"

편집하다: Mac OS 시스템에 X 서버가 설치되어 있지 않을 수 있으므로 사용하지 않지만 일반적인 아이디어는 동일하게 유지됩니다. 역방향 터널링을 사용하면 로컬 시스템에 공용 IP 주소가 필요하지 않다는 이점이 있습니다.

답변2

이것이 접근하는 가장 우아한 방법은 아닐 수도 있지만, Mac OS X를 사용하고 있기 때문에 이미 다른 컴퓨터에 원격으로 연결되어 있는 경우 제가 생각할 수 있는 유일한 방법은 다음과 같이 호스트에 SSH 명령을 다시 실행하는 것입니다. . 가장 중요한 전제 조건은 Mac OS X 노트북에서 SSH 서버를 실행하고 있어야 하며, 이것이 작동하려면 라우터의 방화벽 규칙이 포트 22에서 SSH 연결을 허용하는지 확인해야 한다는 것입니다.

따라서 랩탑에 이름이 지정되어 있고 원격 시스템에서 machineA와 같은 URL을 열고 싶다고 가정해 보겠습니다 .http://google.com) 그런 다음 컴퓨터에서 이 SSH 명령을 실행하면 됩니다..

ssh username@machineA 'open http://google.com'

그러면 로컬 컴퓨터에 다시 연결된 SSH가 시작되고 open http://google.com기본 브라우저를 기반으로 브라우저 창을 여는 명령이 실행되어 전달된 URL로 이동합니다. http://google.com.

관련 정보