Windows에도 OpenSSH 클라이언트는 있지만 GUI 지원하는 PuTTY가 있으니 보통 그걸 더 많이 쓰긴 한다. 하지만 나는 아치 리눅스를 쓰기 때문에 GUI 같은 건 필요가 없다.
SSH 설정 파일 수정
설정 파일 경로는 ~/.ssh/config
에 있다. 없으면 하나 만들면 된다.
Host alias
HostName IP_OR_DOMAIN
Port PORT
User USERNAME
이렇게 써넣고 저장하면 ssh alias
를 입력했을 때 자동적으로 지정한 호스트명:포트에 사용자명으로 접속이 된다. 혹시나 키 페어를 서버마다 각각 두고 관리한다면 다음과 같이 위치를 지정할 수도 있다.
Host alias
HostName IP_OR_DOMAIN
Port PORT
User USERNAME
IdentityFile ~/.ssh/id_rsa
Host alias2
HostName IP_OR_DOMAIN_2
Port PORT_2
User USERNAME
IdentityFile ~/.ssh/id_rsa_sub
만약 SSH를 통해 서버에 연결한 후, 해당 서버의 특정 포트에서 돌아가는 서비스를 로컬로 끌어와야 할 경우 (포트 포워딩) ssh -L
을 사용하는데, 이 또한 config에서 LocalForward
옵션으로 지정이 가능하다.
Host alias
HostName IP_OR_DOMAIN
Port PORT
User USERNAME
LocalForward 127.0.0.1:3306 127.0.0.1:5555
이렇게 하면 원격지 서버의 127.0.0.1:3306
에서 호스팅되는 서비스를 로컬의 127.0.0.1:5555
로 끌고 온다. 여러 포트를 끌어와야 하면 여러 번 적으면 된다.
같은 맥락으로 만약 특정 IP에서만 접속이 가능한 서비스에 연결하기 위해 또 다른 서버를 통해야 하는 경우 (로컬 → 경유지 서버 → 최종 목적지) RemoteForward
옵션을 지정해주면 된다.
Host alias
HostName IP_OR_DOMAIN
Port PORT
User USERNAME
RemoteForward 127.0.0.1:3306 private-relay.service.tld:3306
이렇게 하면 로컬의 127.0.0.1:3306
을 통해 경유지 서버를 거쳐, private-relay.service.tld:3306
에서 호스팅되는 서비스에 접근할 수 있다.