안될것 같네요. 그렇게 하려는 이유가 있나요? 예를 들어... PC 와 목적서버 사이에 방화벽이 있어서 직접 접근할 수 없는데, 경유서버로는 접근이 가능한 경우라던가... 이런 경우라면, 네트워크 담당자에게 PC가 목적서버로 직접 접근이 가능하도록 요청하는 것이 가장 편합니다. 다음으로, 만일 경유서버의 관리자인 경우 경우서버의 특정 포트로 들어오는 통신을 목적서버로 포워딩 하도록 할 수는 있습니다. 네트워크 담당자가 좋아하지는 않겠죠. 관리자가 아니더라도 특정 프로그램을 실행시켜 같은 일을 할 수는 있습니다. 관리자가 좋아하지 않을거에요.
@예쁜닉네임님 경유 서버와 목적 서버는 한 내부 네트워크에 있고 외부에 있는 제 PC가 접근할 수 있는 곳이 경유 서버 밖에 없기 때문에 이렇게 접근하고 있습니다. Putty로는 SSH 연결을 두번 해주면 그냥 접속이 되니까 편하게 작업을 할 수 있는데 VSCode SSH Extension은 어떻게 해야 비슷한 효과를 낼 수 있나 찾아보던 중이었습니다. https://code.visualstudio.com/blogs/2019/10/03/remote-ssh-tips-and-tricks#_proxycommand 요 내용이 제가 가장 원하던 것 같은데 똑같이 쳤을 때에는 잘 작동하지 않는 것 같아서 조금 더 연구해보고 있습니다.. 직접 접근 하도록 요청하는 것이 가장 좋긴한데 현재로써는 힘들 것 같아 이렇게나마 알아보고 있습니다.. // 추가 결과적으로 위 링크 내용대로 해서 성공했습니다. 다만 ProxyCommand ssh -q -W %h:%p jump-box에서 ssh를 ssh.exe로 작성하셔야 작동합니다. 혹여나 필요한 다른분들이 보시라고 작성해둡니다.
@님 예전에... PC에서 server1 에는 접근할 수 있지만 server2_behind_server1 에 접근할 수 없을 때... PC에서 server1 에 접속한 다음, server1 에서 openssh 프로그램을 실행시켜 특정 포트, 예를 들어 600022, 를 열고 그 포트를 server2_behind_server1 의 22 포트로 포워딩시키곤 했습니다. 그 후 PC 에서 ssh를 통해 server1의 600022 포트에 접근하면, 실제로는 server2_behind_server1 의 22 포트로 접근하도록 말이죠. 아래 @lolz님 이 말씀하시는 것이 이것입니다.
PuTTY 는 ssh 클라이언트입니다. 그러니 putty 로 server1 에 접속한 다음, server1 에서 ssh 로 600022 포트를 server2_behind_server1 의 22 포트로 포워딩시킨 후에는, 그 putty 세션이 유지되는 동안, 다른 putty 창에서 server1의 600022 포트를 통해 server2_behind_server1 로 접근할 수 있습니다. 이렇게 수동으로 접근해 ssh 프로그램을 실행시키고 하던 것을 자동으로 만들었던 것 같네요. https://blog.naver.com/baekmg1988/221621075905
@예쁜닉네임님 제가 해결한 방식은 말씀해주신 내용 중 두번째에 해당하는 것으로 생각됩니다. 여러 접근 방법에 대해 알려주셔서 감사합니다. 첫 번째 방식은 제가 제대로 이해한 것인진 모르겠는데 server1의 600022포트가 외부에서 접근 가능해야하는 것으로 이해했는데 저의 SSH 경유 서버는 SSH용 포트 1개 밖에 열려있지 않기 때문에 사용하기 어려웠을듯 합니다.
Putty로는 SSH 연결을 두번 해주면 그냥 접속이 되니까 편하게 작업을 할 수 있는데
VSCode SSH Extension은 어떻게 해야 비슷한 효과를 낼 수 있나 찾아보던 중이었습니다.
https://code.visualstudio.com/blogs/2019/10/03/remote-ssh-tips-and-tricks#_proxycommand
요 내용이 제가 가장 원하던 것 같은데 똑같이 쳤을 때에는 잘 작동하지 않는 것 같아서 조금 더 연구해보고 있습니다..
직접 접근 하도록 요청하는 것이 가장 좋긴한데 현재로써는 힘들 것 같아 이렇게나마 알아보고 있습니다..
// 추가
결과적으로 위 링크 내용대로 해서 성공했습니다.
다만 ProxyCommand ssh -q -W %h:%p jump-box에서 ssh를 ssh.exe로 작성하셔야 작동합니다.
혹여나 필요한 다른분들이 보시라고 작성해둡니다.
PuTTY 는 ssh 클라이언트입니다. 그러니 putty 로 server1 에 접속한 다음, server1 에서 ssh 로 600022 포트를 server2_behind_server1 의 22 포트로 포워딩시킨 후에는, 그 putty 세션이 유지되는 동안, 다른 putty 창에서 server1의 600022 포트를 통해 server2_behind_server1 로 접근할 수 있습니다. 이렇게 수동으로 접근해 ssh 프로그램을 실행시키고 하던 것을 자동으로 만들었던 것 같네요. https://blog.naver.com/baekmg1988/221621075905
또 다른 방식은... server1에 접속한 다음 server1에서 연속해서 server2_behind_server1로 접속하는 것입다. 이것을 자동화한 방법이 https://unix.stackexchange.com/questions/234903/correct-ssh-config-file-settings-to-tunnel-to-a-3rd-machine 이고요. 위에 포트를 여는 것과 방식이 조금 다릅니다. 위에 포트를 여는 방식에서 putty의 접속-SSH-터널링 을 열어 설정하는 그림이 있습니다. 그와 달리 접속-프락시 를 열어, 로칼 프락시 커맨드를 적절히 설정하는 방식으로 ssh의 config 파일을 대신하는 것 같네요.
여러 접근 방법에 대해 알려주셔서 감사합니다. 첫 번째 방식은 제가 제대로 이해한 것인진 모르겠는데 server1의 600022포트가 외부에서 접근 가능해야하는 것으로 이해했는데 저의 SSH 경유 서버는 SSH용 포트 1개 밖에 열려있지 않기 때문에 사용하기 어려웠을듯 합니다.
https://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/
ssh -L 로컬포트:도착지:도착포트 계정@중개서버 -p 중개포트
이후
계정@localhost -p 로컬포트
로 접속