2021년 1월 10일 일요일

서버 A 를 통해 서버 B 에 ssh

로칼에서 서버 B 에 직접 SSH 가 안되어
X) local ---> B

로칼에서 서버 A 에 SSH 한 후, 서버 A 에서 다시 서버 B 로 SSH 하는 경우
O) local ---> A ---> B

--------------------------------------------------------------------------------

$ cat ~/.ssh/config
Host A
    HostName 서버A의 이름 또는 IP 주소
    #Port 22
    User 서버A 의 사용자 이름
    #IdentityFile 비밀키 경로(로컬 PC)

Host B
    HostName 서버B의 이름 또는 IP 주소
    #Port 22
    User 서버B 의 사용자 이름
    #IdentityFile 비밀키 경로(로컬 PC)
    ProxyJump A                     # Host A 의 설정 사용
    #ProxyJump userA@A:portA # 서버 A의 계정정보 지정

# ProxyJump 가 안먹는 경우 ProxyCommand 사용 가능
Host B
    ProxyCommand ssh -W <서버B의 이름 또는 IP 주소>:<서버B의 포트> A
    User 서버B 의 사용자 이름
    #IdentityFile 비밀키 경로(로컬 PC)

--------------------------------------------------------------------------------

$ ssh B


참고: https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Passing_Through_One_or_More_Gateways_Using_ProxyJump

https://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host