구성 파일의 SSH 역방향 터널

구성 파일의 SSH 역방향 터널

CLI 매개변수 LocalForward로 작동하는 것과 같은 SSH 클라이언트 구성 지시문을 찾고 있습니다.-L하지만-R매개변수 에 대해

TL;DR전체 문제 세부정보

자료:

repoServer -> myComputer -> NAT -> stagingServer

인터넷에 노출되지 않는 로컬 Git 저장소 서버와 저장소를 배포해야 하는 원격 준비 서버가 있습니다.

이를 위해 역방향 소켓을 사용하여 원격 StagingServer에 SSH로 연결합니다.

현재 구성:내 컴퓨터:

파일:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes

내가 실행하는 것 : ssh StagingServer -R 8022:repository.local:22

현재 구성:스테이징서버:

파일:~/.ssh/config

Host repository
  Hostname localhost
  User git
  Port 8022
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_deployer

내가 실행할 수 있는 것: git clone git@repository:myProject.git

모두 잘 작동하지만... 마침내

질문:

추가하지 않도록 역방향 터널을 열도록 SSH 클라이언트 구성 파일(~/.ssh/config)에 지정할 수 있습니까?-R 8022:repository.local:22

답변1

분명히 당신이 찾고 있는 것은 RemoteForward입니다. ssh_config 문서에서 구체적인 내용을 찾을 수 있습니다...

선적 서류 비치:https://linux.die.net/man/5/ssh_config (RemoteForward 검색). 그것은 자명하다.

원격 전달

원격 시스템의 TCP 포트가 보안 채널을 통해 로컬 시스템의 지정된 호스트 및 포트로 전달되도록 지정합니다. 첫 번째 인수는 [bind_address:]port여야 하고 두 번째 인수는 호스트:호스트포트여야 합니다. IPv6 주소는 주소를 대괄호로 묶거나 대체 구문([bind_address/]port 및 호스트/hostport)을 사용하여 지정할 수 있습니다. 여러 전달을 지정할 수 있으며 명령줄에서 추가 전달을 지정할 수 있습니다. 권한 있는 포트는 원격 시스템에서 루트로 로그인하는 경우에만 전달될 수 있습니다.

그런 다음 구성은내 컴퓨터다음과 같이 됩니다:

파일:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes
  RemoteForward 8022 repository.local:22

관련 정보