보안 셸을 사용하여 방화벽 내부의 호스트에서 방화벽 외부의 호스트로 연결을 설정할 수 있습니다. 이 작업을 수행하려면 구성 파일에서 또는 명령줄 옵션으로 ssh에 대한 프록시 명령을 지정합니다. 명령줄 옵션은 Example 1–7을 참조하십시오.
개인의 고유한 구성 파일 ~/.ssh/config를 통해 ssh 상호 작용을 사용자 정의하거나 관리 구성 파일 /etc/ssh/ssh_config의 설정을 사용할 수 있습니다.
두 가지 유형의 프록시 명령으로 파일을 사용자 정의할 수 있습니다. 프록시 명령 중 하나는 HTTP 연결에 사용되며, 나머지 하나는 SOCKS5 연결에 사용됩니다. 자세한 내용은 ssh_config(4) 매뉴얼 페이지를 참조하십시오.
다음 구문을 사용하여 필요에 따라 행을 여러 개 추가합니다.
[Host outside-host] ProxyCommand proxy-command [–h proxy-server] \ [–p proxy-port] outside-host|%h outside-port|%p
명령줄에서 원격 호스트 이름이 지정된 경우 프록시 명령 지정을 인스턴스로 제한합니다. outside-host에 와일드카드를 사용하면 일련의 호스트에 프록시 명령 지정이 적용됩니다.
프록시 명령을 지정합니다.
명령은 다음 중 하나일 수 있습니다.
HTTP 연결의 경우 /usr/lib/ssh/ssh-http-proxy-connect
SOCKS5 연결의 경우 /usr/lib/ssh/ssh-socks5-proxy-connect
해당 옵션은 각각 프록시 서버와 프록시 포트를 지정합니다. 있을 경우 프록시는 프록시 서버 및 프록시 포트를 지정하는 환경 변수(예: HTTPPROXY, HTTPPROXYPORT, SOCKS5_PORT, SOCKS5_SERVER 및 http_proxy)를 대체합니다. http_proxy 변수는 URL을 지정합니다. 옵션이 사용되지 않을 경우 관련 환경 변수를 설정해야 합니다. 자세한 내용은 ssh-socks5-proxy-connect(1) 및 ssh-http-proxy-connect(1) 매뉴얼 페이지를 참조하십시오.
연결할 특정 호스트를 지정합니다. 명령줄에서 호스트를 지정하려면 %h 대체 인수를 사용합니다.
연결할 특정 포트를 지정합니다. 명령줄에서 포트를 지정하려면 %p 대체 인수를 사용합니다. Host outside-host 옵션을 사용하지 않고 %h 및 %p를 지정하면 ssh 명령이 호출될 때마다 호스트 인수에 프록시 명령이 적용됩니다.
예를 들면 다음과 같습니다.
mySystem% ssh myOutsideHost
이 명령은 개인 구성 파일에서 myOutsideHost에 대한 프록시 명령 지정을 검색합니다. 지정을 찾을 수 없을 경우 명령은 시스템 차원의 구성 파일 /etc/ssh/ssh_config 에서 찾습니다. ssh 명령이 프록시 명령으로 대체됩니다.
구성 파일에서 프록시 명령을 지정하는 방법은 방화벽 외부의 호스트에 대한 기본 보안 셸 연결 설정 방법에서 설명됩니다. 이 예에서는 ssh 명령줄에서 프록시 명령이 지정됩니다.
% ssh -o'Proxycommand=/usr/lib/ssh/ssh-http-proxy-connect \ -h myProxyServer -p 8080 myOutsideHost 22' myOutsideHost
ssh 명령에 대한 –o 옵션은 명령줄에서 프록시 명령을 지정하는 방법을 제공합니다. 이 예의 명령은 다음을 수행합니다.
ssh를 HTTP 프록시 명령으로 대체합니다.
포트 8080 및 myProxyServer를 프록시 서버로 사용합니다.
myOutsideHost의 포트 22에 연결합니다.