마이의 개발 블로그

[Linux] 하나의 서버에서 터미널로 다른 서버에 접속하는 방법(ssh, sftp) 본문

개발지식/인프라

[Linux] 하나의 서버에서 터미널로 다른 서버에 접속하는 방법(ssh, sftp)

개발자마이 2024. 3. 23. 01:06
반응형

배경

소프트웨어가 설치되는 환경에 따라 하나의 서버에 접속한 후 그 서버와 연결된 다른 서버에 접속해야하는 경우가 있습니다. 예를 들어 web, WAS, DB서버들로 구성된 환경에서 web은 외부 IP로 접근이 가능하지만 WAS, DB는 web을 통해서만 접근이 가능한 경우가 이에 해당합니다. 이럴 때 사용할 수 있는 방법들을 제가 겪었던 문제 상황들과 함께 제시해보겠습니다.

문제 상황

1. web서버로만 접근이 가능한 WAS 서버에 접속하여 작업을 수행해야할 때 (ssh 이용)

1) 터미널을 통해 web 서버에 접속합니다.

2) 접속된 web 서버의 터미널에서 ssh 명령어를 이용해 WAS에 접속합니다.

- 명령어 형식: ssh <유저명>@<서버IP or 도메인> -p <포트번호>

- 예를들어 1.2.3.4:1234 에 user라는 이름으로 접속하는 경우 아래와 같이 입력하면 됩니다.

ssh user@1.2.3.4 -p 1234

- 비밀번호가 있는 경우 먼저 접속을 시도한 후 서버의 안내에 따라 입력합니다.

3) 원래 하려던 작업을 수행합니다.

4) exit 를 입력하면 다시 web서버로 돌아올 수 있습니다.

2. web 서버에서만 인터넷이 가능한 상황에서 WAS 서버의 도커 이미지 업데이트가 필요할 때 (ssh, sftp 이용)

1) web 서버에 접속합니다.

2) 업데이트가 필요한 WAS 도커 이미지들을 web서버에 다운로드합니다.

3) 해당 이미지들을 save 명령어를 통해 파일로 저장합니다.

docker save -o 이미지이름.tar 이미지이름:태그

4) sftp를 통해 WAS 서버에 접속합니다.

- 명령어 형식: sftp -P <포트번호> <유저명>@<IP or 도메인>

- 예를들어 1.2.3.4:1234 에 user라는 이름으로 접속하는 경우 아래와 같이 입력하면 됩니다(ssh와 형식 다름).

sftp -P 1234 user@1.2.3.4

- 비밀번호가 있는 경우 먼저 접속을 시도한 후 서버의 안내에 따라 입력합니다.

 

- sftp 접속 후 간단한 명령어들(ls, cd, pwd, vi)은 대체로 그대로 사용할 수 있습니다.

- sftp 접속 전 기존 서버(여기에서는 web서버)에서의 명령어는 앞에 소문자 l(엘)을 붙여주면 됩니다. 예를들어 ls, cd, vi를 사용하는 경우 lls, lcd, lvi 등으로 입력하여 그대로 사용이 가능합니다.

5) cd, mkdir  등의 명령어를 이용해 양쪽 서버에서 파일의 출발지와 목적지를 설정해줍니다.

6) PUT 명령어를 통해 기존 폴더에서 저장한 도커 이미지 파일을 WAS 서버로 옮겨줍니다: 명령어 PUT * 

- PUT <파일명>: 출발지 -> 목적지로 파일 복사

- GET <파일명>: 목적지 -> 출발지로 파일 복사

7) WAS 서버에서 docker load -i 명령어를 통해 이미지를 로드하고 후속 작업을 수행합니다.

docker load -i 이미지이름.tar

Note

- 웹의 구성은 정말 천차만별이라는 생각이 듭니다. 각기 다른 환경을 몇 개 경험해보는 중인데 비슷한 구성이 하나가 없다보니 솔루션의 설치와 동작의 제약을 완화시켜주는 도커의 존재가 굉장히 고맙게 느껴지는 요즘입니다.

반응형
Comments