SSH 터널을 통해 Firefox를 자동으로 여는 방법은 무엇입니까?

SSH 터널을 통해 Firefox를 자동으로 여는 방법은 무엇입니까?

우리 대학에서는 집에서는 접근할 수 없는 일부 학술지에 접근할 수 있습니다. 제가 없는 동안 문서를 다운로드할 수 있도록 현재 프로세스는 다음과 같습니다.

  • 대학 컴퓨터에 SSH 터널 만들기ssh -D 12345 [email protected]

  • 이 터널을 프록시로 사용하도록 구성한 별도의 프로필을 사용하여 Firefox의 새 인스턴스를 시작합니다 firefox -P uniprofile -no-remote. 이렇게 하면 내 대학으로 트래픽을 보내지 않는 다른 창을 계속 열 수 있습니다.

  • 논문을 다운로드한 후 Firefox를 종료하고 SSH 연결을 닫았습니다.

내가 이해하지 못하는 것은 이 모든 것을 스크립트에 연결하여 터널을 설정하고(비밀번호를 묻는 메시지를 표시함) 완료되면 Firefox를 시작한 다음 SSH 연결을 닫는 데스크톱 실행 프로그램을 만들 수 있다는 것입니다. Firefox 창을 닫으세요. 첫 번째 시도는 단순히 ssh 명령을 사용하여 스크립트를 만든 다음 firefox 명령을 사용하는 것이었지만 결과적으로 Firefox는 ssh 연결을 닫은 후에야 시작되었습니다.

#!/bin/bash
set -e
ssh -D 12345 [email protected]
firefox -P uniprofile -no-remote
#...and at this point find a way to close the ssh connection...

답변1

이것은 테스트되지 않았지만(GUI를 사용하지 않기 때문에) 다음을 시도해 보십시오.

#!/bin/bash

# From this answer http://unix.stackexchange.com/a/29949/82289
[email protected]
ssh -f -N -D 12345 -M -S /tmp/ssh_tunnel_%h.sock -o ExitOnForwardFailure=yes $SSH_HOST && \
echo "ssh tunnel started successfully" || \
echo "ssh tunnel failed to start"

# Launch firefox
firefox -P uniprofile -no-remote

# We should only get here after firefox closes
# Close the ssh tunnel socket
ssh -S /tmp/ssh_tunnel_%h.sock -O exit $SSH_HOST
# End shell-script

이 2개의 플래그 -f-N당신이 원하는 것이라고 생각합니다(사람들 ssh에서).

-에프

명령이 실행되기 전에 SSH에 백그라운드로 들어가도록 요청합니다. 이는 ssh에 비밀번호나 패스프레이즈가 필요하지만 사용자가 이를 백그라운드에서 실행하기를 원하는 경우에 유용합니다. 이는 -n을 의미합니다. 원격 사이트에서 X11 프로그램을 시작하는 권장 방법은 ssh -f host xterm과 같은 명령을 사용하는 것입니다.


-N

원격 명령을 실행하지 마십시오. 이는 포트만 전달하는 데 유용합니다(프로토콜 버전 2만 해당).

답변2

또는 해당 컴퓨터에 Firefox가 설치되어 있는 경우 Firefox를 열고 다음과 같이 컴퓨터에 표시할 수 있습니다.

달리기:

export DISPLAY=:0.0; 
ssh -Y [email protected]

그런 다음 SSH 연결이 설정되면 해당 머신에서 Firefox를 실행하면 됩니다.

firefox

관련 정보