회사 데스크탑을 집에서 SSH로 접근할 수 있다면 집에서도 재택을 더 효율적으로 할 수 있지 않을까 하는 생각이 들었다.(?)
하지만 외부에서 사내 데스크탑에 접속하는 것은 쉽지 않다. 공유 오피스 관리팀에 포트 포워딩을 요청 해야 하며, 중간에 공유기가 있다면 그 공유기에도 추가 설정을 해야하고, 따로 요금을 지불해야 할 수도 있다.
전에 누군가 Reverse SSH와 개인 서버만 있다면 이 문제를 쉽게 해결할 수 있다고 했던 말이 생각나 찾아봤다.
RemoteForward 옵션을 통해서 Cloud Server가 Company Desktop으로 reverse ssh 접속이 가능하도록 설정한다.
# Company Desktop
# ~/.ssh/config
Host cloud_server
HostName <cloud_server_ip>
Port <cloud_server_ssh_port>
User <cluoud_user>
IdentityFile <cloud_ssh_key_path>
RemoteForward 5555 localhost:22
RemoteForward 5555 localhost:22
라인은 Cloud 의 5555가 Company Desktop 의 localhost:22에 Reverse Port Forwaring한다는 의미이다.
nohup으로 background에서 실행되도록 설정하였다. systemctl에 데몬으로 등록하여 Company Desktop이 켜져있을 때는 항상 접근 가능하도록 할 예정이다.
>> nohup ssh cloud_server &
정말 간단하다. Home의 ssh config파일에 클라우드 서버의 ssh 접속 정보와, company_desktop의 접속 정보를 입력하고 PorxyJump
를 추가하면 된다.
# Home
# ~/.ssh/config
Host cloud_server
HostName <cloud_server_ip>
Port <cloud_server_port>
User <cloud_server_user>
IdentityFile <cloud_server_key_path>
Host company_desktop
HostName localhost
Port 5555
User company_desktop_user
ProxyJump cloud_server
이제 집에서 Clode_server를 경유하여 Company desktop에 접근할 수 있다.
# Home
>> ssh company_desktop
ssh코드는 remote - ssh 플러그인을 통해서 해당 서버에 쉽게 접근이 가능하다.
1. Remote-SSH 실행
2. company_desktop 선택
3. Cloud Server SSH 암호 입력
4. Company Desktop SSH 암호 입력
5. 성공!