본문 바로가기

개발/Server Side

ssh로 원격 접속 후 로컬호스트로 "잠깐" 돌아오기


ssh로 원격 호스트에 접속 한 후에 다시 로컬 호스트에서 무엇인가 해야 될 때가 있다.

이때 보통은, 그리고 나도 이제까지는 다음과 같이 했다.

1. 원격 접속을 끊는다.
2. 로컬 호스트에서 작업을 한다.
3. 다시 원격 접속한다.

하지만 원격 접속을 끊지 않고 로컬 호스트에서 작업을 할 수 있는 방법이 있더라...

간단히 말하면 ssh 자체를 로컬 호스트의 백그라운드 job으로 전환하는 것이다.

방법은 다음과 같다.

1. 원격 호스트에서 "~", Ctrl+Z를 순서대로 누른다. 이때 처음에 "~"를 누르면 화면에는 보이지 않지만 Ctrl+Z를 누르면 표시된다.

remotehost$ ~^Z
[1]+ Stopped ssh  remotehost
localhost$


2. 로컬 호스트에서 작업을 한다. 로컬 호스트에서 jobs를 쳐 보면 ssh가 백그라운드 job으로 돌고 있는 것을 확인할 수 있다.

localhost$ jobs
[1]+ Stopped ssh remotehost


3. 다시 원격 호스트로 돌아가려면 백그라운드 job을 foreground job으로 전환한다.

localhost$ fg %1
ssh remotehost
remotehost$