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